why do some executables and libraries reference PDB files and some not
During the development of my own PE analysing tool, I noticed that some exe and libraries (e.g. Adobe Reader) reference a Debug PDB file. Some do not reference any PDB file at all. Some with the full path showing the directory on the build machi开发者_如何学编程ne, some with the relative path, some just with the PDB file name. What is the best solution? No PDB at all, only reference to the relative path, the reference to the full path?
You ask about "best solution" but did not say solution for what problem.
The PDB record is added by the linker if you specify /debug switch and the object files were compiled with debug info (/Zi or /ZI). Whether it's relative or absolute depends on the way it way it was built. I think Microsoft has an internal tool to edit the path, so that you might see just the filename in the final .exe. Since it's identified by a GUID, the actual path is not very important.
精彩评论