将windbg与.dmp文件关联

如果您厌倦了启动调试器、加载转储文件、设置sympath、加载扩展名等,这里有一个很好的方法,可以在.dmp文件的上下文菜单上获取“调试此转储文件”,并自动加载所有您喜欢的命令。
首先创建一个包含以下内容的.reg文件(在修改注册表时一定要非常小心)

Windows Registry Editor Version 5.00


[HKEY_CLASSES_ROOT\.dmp]

@="Debugger.Dump"

[HKEY_CLASSES_ROOT\Debugger.Dump]

[HKEY_CLASSES_ROOT\Debugger.Dump\DefaultIcon]

@="c:\\debuggers\\cdb.exe"

[HKEY_CLASSES_ROOT\Debugger.Dump\Shell]

[HKEY_CLASSES_ROOT\Debugger.Dump\Shell\Debug_Without_Remote]

@="Debug This Dump"

[HKEY_CLASSES_ROOT\Debugger.Dump\Shell\Debug_Without_Remote\Command]

@="\"C:\\debuggers\\windbg\" -z \"%1\" -c \"$<c:\\debuggers\\commands.txt\""

[HKEY_CLASSES_ROOT\Debugger.Dump\Shell\Debug_With_Remote70]

@="Debug this Dump With Remote:70"

[HKEY_CLASSES_ROOT\Debugger.Dump\Shell\Debug_With_Remote70\Command]

@="\"C:\\debuggers\\windbg\" -server tcp:port=70 -z \"%1\" -c \"$<c:\\debuggers\\commands.txt\""

右键单击.dmp文件时,将在上下文菜单上提供两个附加选项。首先“调试此转储”,它将用转储打开windbg,然后运行commands.txt中的命令。第二个选项“Debug this Dump With Remote:70”将执行相同的操作,但也将设置一个远程,以便您的同事可以通过端口70远程进入您的调试会话。(记住要更改路径,使它们指向windbg.exe和commands.txt所在的目录)

其次,创建一个名为commands.txt的文件,其中包含调试器启动时要运行的任何命令。下面的一个设置公共符号的符号路径并加载sos.dll。

.sympath srv*c:\websymbols*http://msdl.microsoft.com/download/symbols
.load clr10\sos

posted on 2019-11-28 10:39  活着的虫子  阅读(404)  评论(0编辑  收藏  举报

导航