如何在windbg中自动加载用户编写的扩展名

时间:2016-11-16 23:23:52

标签: windows debugging windbg

我将windbg内核调试器连接到虚拟机。我已经加载了一个用户编写的扩展名dll(.load DLL)。每当虚拟机重新启动(.reboot)时,它都会卸载所有扩展,并且在VM重新启动后,它永远不会加载它们。我每次都要加载它。

有没有办法,即使重启后我也可以告诉windbg加载我的分机(或者根本不卸载它?)不确定以后是否可以。有没有解决方法?

谢谢。

1 个答案:

答案 0 :(得分:3)

好好打字或从历史中选择 .load foo.dll 并不是一件很大的烦恼
typing foo!myblah加载你的扩展并执行命令,因此它不应该是一个大问题

重新启动时会启动一个新会话,因此所有用户修改都不会保留

但如果你认为你需要一些自动化,你可以使用sxe命令 在重启之前

sxe -c ".load mysuperduperext.dll;gc" ibp ; .reboot

这假设您已将extsnion dll放在默认搜索路径中 即 winext /%PATH%

如果它在某个目录中不在默认搜索路径

使用各种选项之一,例如设置_NT_DEBUGGER_EXTESNION_PATH 在执行windbg / kd之前

:\>cat runwindkd.bat
set  _NT_DEBUGGER_EXTENSION_PATH=.\myexts
.\windbg -k com:pipe,port=\\.\pipe\debugpipe,resets=0,reconnect -c ".load myext.dll"

这会将目录添加到默认搜索路径

kd> .extpath
Extension search path is: .\myexts;E:\wind