I read here that some PE files have debug information baked into the PE file. Is this only the case for older PE files?

Is it safe to assume that all Visual Studio compiled PE files have all debug information (if any) in an external PDB file, i.e. do not contain debug information other than the path to a PDB file?

1 Answer 1


Old versions of link.exe supported the /debugtype argument that used these options:

   use COFF format
   use CodeView or Program Database format (depends on /pdb option) 
   use both COFF and CodeView/Program Database formats

According to the MSDN docs for Visual Studio 2008's linker, that option was no longer available; and the information for the /debug switch states that "it is not possible to create an .exe or .dll that contains debug information. Debug information is always placed in a .pdb file."

So anything built with Microsoft tools from the last decade won't have embedded symbol information.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.