在过去,我听说过使用.dmp解析WinDbg文件的引用(我认为--我可能错了)。
我还在.map文件的帮助下进行了相当广泛的调试,并使用标准逻辑启发式方法和Visual调试器进行了广泛的调试。
但是,偶尔,我正在开发的程序会崩溃并创建一个.dmp文件。我从未能够解释.dmp文件。不久前,我发布了一个关于如何解释.dmp文件( 如何在Windows 7上查看.dmp文件? )的问题,但经过一些重大的努力后,我无法找到如何使用这个问题的答案来解释.dmp文件。
今天,我看到了一个不相关的所以问题( C++ try/throw/catch => machine code ),在被接受的答案下面有一条有用的评论再次提到了WinDbg。
不过,如果你真的想找出这个问题,那很容易--只需在WinDbg中追踪
我想遵循这个建议。然而,对我来说,“只在WinDbg中跟踪”并不容易。我过去试过,但不知道这到底意味着什么,也不知道该怎么做!
所以我再试一次。“一劳永逸”,我想得到简单明了的指示:
如果您可以从只安装和运行Visual的程序员的“起点”回答这个问题。
谢谢!
发布于 2012-11-30 14:26:11
.dump命令从活动进程生成内存转储。其他工具,如adplus,可用于在特定条件下自动创建内存转储,例如当进程超过内存或CPU阈值时,或当进程崩溃时。WinDbg可以很容易地打开崩溃转储。重要的是,首先要正确加载符号。通常以.pdb文件的形式或从符号服务器(虽然不是必要的,或者总是可能的,但这是非常有用的)。
一旦运行了WinDbg,就可以在崩溃转储中查看可用的命令列表。
发布于 2012-11-30 14:41:16
.dump /ma c:\mem.dmp,您也可以在使用沃森博士发生崩溃时设置沃森博士。但是,为了能够生成合理的调用堆栈,您必须拥有Windows和应用程序的符号,请注意,由于明显的原因,您不能在内存转储中跨过或设置断点,只能在活动进程中这样做。您还可以让WinDbg以非侵入的方式附加,这样Visual就可以附加,并且可以非侵入地附加WinDbg,并使用WinDbg中的工具集来帮助调试。
对我来说,WinDbg的主要优势是免费的,它是一个小的下载和安装,它速度快,它有一个非常丰富的工具集,诊断问题,要么是困难的,要么是不可能做的使用visual。
https://stackoverflow.com/questions/13646781
复制相似问题