- 第 1 步:我构建 myProgram.exe 并在其旁边生成 myProgram.pdb。
- 第 2 步:我故意导致 myProgram.exe 崩溃。
- 第 3 步:有人问我是否要使用 Visual Studio 作为调试器,我就这样做了。
- 第 4 步:Visual Studio 从 myProgram.pdb 加载符号。
- 第 5 步:我检查调用堆栈以确定发生崩溃的(已知)位置。
- 第6步:我不会皱眉或看起来很困惑,因为它应该是这样的。
但是,如果我将 myProgram.exe 和 myProgram.pdb 重命名为 SomethingElse.exe 和 SomethingElse.pdb 并重复这些步骤,则从第 4 步开始的结果会混合在一起。据我所知,在我的构建机器上,VS 总是会从重命名的 PDB 文件中成功加载符号。但是,在我的远程目标机器上,VS 永远不会加载符号——它总是告诉我 PDB 文件与可执行文件不匹配。为什么不?我违反了一条晦涩难懂的规则吗?我在任何地方都运行 Visual Studio 2005,以防万一。