如何使用WinDbg隔离程序的内核调用?

时间:2017-07-14 22:44:30

标签: windows kernel windbg

我正在尝试使用WinDbg来调试在加载特定程序时发生的内核调用。内核模式代码中发生错误。内核函数是在机器上运行的许多进程上每秒多次发生的极其常见的调用。那么,如何隔离内核调用来调试呢?例如,如果我在nt!NtCreateSection或ntdll!RtlEnterCriticalSection上放置一个断点,WinDbg会破坏很多次,甚至无法进入操作系统并启动有问题的程序,因为它会打破调用这些函数是内存中所有其他程序使用的,而不是我正在尝试调试的目标程序。请指定解决此问题的方法,并针对此问题定位内核调用的特定实例或其他解决方案。

1 个答案:

答案 0 :(得分:2)

sxe你的模块。
一旦你打破你的模块
找到你的模块!process 0 0的eprocess 设置流程特定断点
像bp / p eprocess symbol。

或用0xcc硬编码模块的入口点,然后从那里开始

您也可以使用ntsd -d your module

进行重定向调试

如果需要,您还可以使用!gflags + ksl强制加载符号