我正在从转储中debuggingWindbg中的一个问题。 我有正确的pdbs,我可以很愉快地看到当地人。 然而,我所拥有的源代码(我从VCS分支中获得的,这个版本可能来自这个分支)似乎在我正在看的堆栈的某些部分被closures了几行。 我已经看到了它以前的版本,但不是3/4的版本。
这是什么原因? 有没有什么明确的方法可以检查我是否拥有正确的源文件?
你正在寻找发布代码的调试版本还是非优化版本? 代码优化可能会导致您所看到的换行,所以您应该使用/ Od C ++优化设置为“禁用”来重新编译,看看这是否能够纠正您所看到的内容。
WinDbg使用与Visual Studio相同的方法来检查你正在查看/设置断点的源文件是否与pdbs匹配,所以它应该警告你(我认为这是我无法验证的)。
除此之外,您还可以使用以下方法验证源文件是否为pdbs:
!itoldyouso myDLL
此外,您可以在另一个窗口中打开源文件,在步进时,它应该在它认为当前调用的线上放置一条洋红线,这应该是正确的,并且与Visual Studio的行为相同。