gpt4 book ai didi

visual-studio - 是什么导致符号无法从 PDB 文件加载?

转载 作者:行者123 更新时间:2023-12-01 02:28:43 29 4
gpt4 key购买 nike

  • 第 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,以防万一。

    最佳答案

    这里打破的简单微妙规则是 PDB 文件名似乎被编码到 EXE 文件中,而不是从 EXE 文件名派生而来。因此,例如,如果您通过在 Windows 资源管理器中通过简单的复制和粘贴来创建“myProgram.exe 的副本”和“myProgram.pdb 的副本”,尽管名称已更改,但看起来符号正在加载。但这只有在原始“myProgram.pdb”文件还存在时才有效 - 如果您删除“myProgram.pdb”并且只有“myProgram.pdb的副本”,符号可能是兼容的,但Visual Studio不会甚至尝试加载它们。

    在我办公室的远程机器上进行的快速测试中,所有改变的是文件名,而不是文件版本,而在实际的远程机器上,名称和文件版本都不同,因此永远不可能事情似乎工作。

    关于visual-studio - 是什么导致符号无法从 PDB 文件加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14491691/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com