我将windbg内核调试器连接到虚拟机。我已经加载了一个用户编写的扩展名dll(.load DLL)。每当虚拟机重新启动(.reboot)时,它都会卸载所有扩展,并且在VM重新启动后,它永远不会加载它们。我每次都要加载它。
有没有办法,即使重启后我也可以告诉windbg加载我的分机(或者根本不卸载它?)不确定以后是否可以。有没有解决方法?
谢谢。
答案 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