注入的 DLL 不能使用符号 pdb,除非它与生成位于同一目录中

Injected DLL can't use Symbols pdb unless it's in the same directory as build

本文关键字:于同一 不能 DLL pdb 符号 注入      更新时间:2023-10-16

我有一个问题,我试图有选择地分发我的pdb(符号)文件,所以我可以让用户给我更详细的崩溃报告。

所以…我的DLL被注入到另一个exe(在另一个文件夹)。从我测试的所有内容来看,我的PDB文件必须位于用户机器上的与我机器上的完全相同的目录中,以便正确找到它。

即…当我构建时,我将PDB放在C:PDBMypdb.pdb

如果用户创建了确切的文件夹并将pdb放在那里,注入的dll将在崩溃时显示行号。但是,如果他把mydb。PDB与dll,或与注入的目标,他们没有收到任何符号。

关于如何在可自定义位置强制我的DLL使用符号文件的任何想法?

这是因为默认情况下,链接器使用一个绝对路径到它生成PDB文件的位置,并将其存储在DLL中。您可以通过传递/PDBALTPATH选项和链接器的相对路径来更改PDB文件的路径。

相关文章: