我遇到了一个问题,我试图有选择地分发我的pdb(符号)文件,这样我就可以让用户给我更详细的崩溃报告。
所以...我的DLL被注入另一个exe(在另一个文件夹中)。从我测试的所有内容中,我的PDB文件必须位于用户计算机上与我的计算机上完全相同的目录中,才能正确找到它。
IE ...当我构建时,我将PDB放在C:\ PDB \ Mypdb.pdb
中如果用户创建了确切的文件夹并将pdb放在那里,则注入的dll会在崩溃时显示行号。但是,如果他将mypdb.pdb与dll或注入目标放在一起,则它们不会收到任何符号。
关于如何强制我的DLL在一个可以在custimizable位置使用符号文件的任何想法?
答案 0 :(得分:1)
这是因为默认情况下,链接器使用绝对路径指向它生成PDB文件的位置并将其存储在DLL本身中。您可以通过传递/PDBALTPATH
选项和链接器的相对路径来更改PDB文件的路径。