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