我读过很多类似的问题进行转储,但我似乎无法找到一个答案,我的问题是什么。需要帮助调试使用WinDbg
我从64位Windows 2008上运行的32位应用程序中获得了一组小型转储。我的32位Vista Business上的32位Visual Studio根本不会触及它们,所以我一直试图在WinDbg中打开它们。
我没有确切对应的.pdb文件(我们才开始为他们节省这一特定版本之后),但我必须在同一台机器建有相同的代码.pdbs。我也可以访问创建小型转储的确切可执行文件。
我发现叫ChkMatch一个漂亮的小应用程序,可以让.pdbs匹配的可执行文件......唯一的区别(根据ChkMatch)是年龄,所以我符合我的新.pdbs原来的可执行文件。
但是,当我将它加载到WinDbg中时,它仍然表示它是“不匹配的pdb”,因为我已经设置了.symopts+0x40
它试图加载它们。然后我得到了警告:
*** WARNING: Unable to verify checksum for myexe.exe
我跑!lmi myexe
,发现,的确,可执行文件的校验实际上为零。从左右一点,我发现可执行文件应该已经用/release
标志来构建,以获得校验和。这一切都很好,但我不能及时重建并重建(如果我这样做了,我肯定会保存原始的.pdbs :-P)。
有什么我可以做吗?似乎有点荒谬,我至少不能在这里比赛,至少得到一个调用堆栈。
即使SYMOPT_LOAD_ANYTHING打开,从中获得您的PDB文件必须具有相同的设置,您试图调试的二进制文件的版本。是这样吗? – 2010-07-15 22:10:28