I am comprehending what is the difference between compiler and linker PDB
files ( For instance Visual Studio, Project Properties> C / C ++> Output Files> Program Database File Name
vs Project Properties & gt; Linker & Gt; debugging
) . I have tried to find the answers online and so far I know (may be wrong) that the file is generated by PDB
file by the compiler for the file obj
while < Code> PDB is generated by the linker for the file binary (XE or DLL) and used for debugging.
If this is not true, please explain the difference in any way, when I am making a DLL
, then what to do, where I have a compiler There is an option to choose the output code for the linker and then what I am doing is creating a LIB file, where only the compiler generates the PDB
because no one Linking is not done
PDB
files. In the case of a lib
file, there is no ambiguity because there is only one PDB
file generated but in case of a DLL
, do both of me Is both required to properly debug the PDB
files or by linking?
I do not know what was generated by the compile phase. How is the use of a PDB file - I think it is the final by linking some intermediate information. Pdb is dragged into the file.
However, the bottom line is that you have only .pdb file for debugging purposes which is produced by linker.
Update: At least digging from this:
There are two types of PDB files?
====== ================================
< P> There are two types of PDB files, one more generated by the compiler called VCx0.PDB. PDB PDBThe VCx0.PDB file is generated by the compiler and it is related to the O.J.J file. It has only type information.
.pdb files are generated by the linker and it is related to the executable or DLL. This file has full debug information when we debugging, then we need the '.pdb' file to align the symbols. The timestamp match of the target file and PDB should match.
Comments
Post a Comment