debugging 未找到匹配的二进制错误

iovurdzv  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(98)

我试图调试一个崩溃的小型转储。有释放调试符号和释放二进制文件相同的崩溃。
当调试崩溃并指向符号时,我仍然得到“未找到匹配的二进制文件”错误。
我使用正确的符号,二进制文件和指向正确的位置。
那么为什么会发生这种情况呢?我可以看到VS中加载的dll的时间戳(9:03AM)和发布二进制文件(9:04AM)有轻微的差异。
这可能是错误的原因吗?
任何解决方案,我需要修复崩溃,因为这个崩溃发生在客户端机器上,我不能再现它。

wwodge7n

wwodge7n1#

您可以尝试使用windbg/ntsd(来自Windows SDK附带的“Windows版本工具”包)调试转储。您可以尝试加载符号,同时忽略.pdb文件版本“.reload /i”命令中的不匹配。

axr492tv

axr492tv2#

对我们来说,这是因为pdb文件的名称。确保可执行文件名和调试信息文件名匹配。
正确的名字是MyAwesomeApp.exeMyAwesomeApp.pdb
如果你的管道 * 碰巧 * 将文件重命名为MyAwesomeApp_v1.2.3.4_DebugInfo.pdb左右,下载后只需重命名为原始文件。
这也可能是为什么时间戳不一样的原因。创建文件和重命名在我们的操作中发生在不同的步骤(彼此接近,但不是原子操作)。所以当它在一分钟的第59秒左右创建文件时,重命名可能会在下一分钟下降,然后boom - 9:03刚好变成9:04。

相关问题