注入的 DLL 不能使用符号 pdb,除非它与生成位于同一目录中
Injected DLL can't use Symbols pdb unless it's in the same directory as build
我有一个问题,我试图有选择地分发我的pdb(符号)文件,所以我可以让用户给我更详细的崩溃报告。
所以…我的DLL被注入到另一个exe(在另一个文件夹)。从我测试的所有内容来看,我的PDB文件必须位于用户机器上的与我机器上的完全相同的目录中,以便正确找到它。
即…当我构建时,我将PDB放在C:PDBMypdb.pdb
如果用户创建了确切的文件夹并将pdb放在那里,注入的dll将在崩溃时显示行号。但是,如果他把mydb。PDB与dll,或与注入的目标,他们没有收到任何符号。
关于如何在可自定义位置强制我的DLL使用符号文件的任何想法?
这是因为默认情况下,链接器使用一个绝对路径到它生成PDB文件的位置,并将其存储在DLL中。您可以通过传递/PDBALTPATH
选项和链接器的相对路径来更改PDB文件的路径。
相关文章:
- 为什么我不能在 C++ 中的特定函数重载中调用同一函数的任何其他重载?
- 为什么我不能在同一代码行中创建和打开流?
- 运算符'<'不能应用于类型 'string' 和 'string' 的操作数
- 为什么我不能在同一 MS VS 解决方案中的两个控制台应用中使用C++特征(仅标头库)?
- 为什么我不能从同一目录中的另一个文件中 #include 我的类?
- 十进制到二进制的实现不能完全适用于我大学的检查器。问题或提示可能是什么
- [expr.unary.op]/9 似乎暗示"运算符!()' 不能应用于下面的类型 A.但编译器不同意这一点
- 'ShowSUM':__declspec(dllexport)不能应用于具有__clrcall调用约定的函数
- 二元运算符"<<"不能应用于类型 "wostream" 和 "string" 的表达式
- 为什么我不能继续使用 std::cin 向同一变量输入其他值?
- 为什么我不能将迭代器应用于接受 const_iterator 引用的函数?
- 为什么 [std::unique] 不能应用于 [std::multiset]?
- 为什么我不能在同一分配中保留两个连续的内存区域,而不通过单个调用保留这两个区域?
- 为什么默认参数不能依赖于非默认参数?
- 类模板:为什么我不能将单一方法专用于空类型?
- 为什么 void 参数不能存在于具有多个参数的函数中?
- 同一段代码,可以用 xcode 或使用 g++ 编译,在终端中编译 clang++,不能使用 gcc 或 clang 编
- 为什么我的C++程序只能读取绝对目录,而不能读取同一文件夹中的文件
- 特定于线程的数据 - 为什么我不能只使用带有线程 ID 的静态映射?
- 为什么const_iterator不能提供类似于reverse_iterator的碱基