首页
社区
课程
招聘
windbg怎么下断点,观察内核态调用用户态过程

如题:

 

假如有一个函数,从用户态进入内核态,然后从内核态调用了另外一个用户态函数

 

如何跟踪观察,从内核态的哪个地方调用了用户态函数。
怎么下断点观察呢?

收藏
2条回答
为华 2022-11-27

用windbg

回复
Sonshines 2022-12-6

要在 WINDBG 中下断点,您可以使用 bp 命令。例如,如果您想为函数 foo 设置断点,可以在 WINDBG 的命令提示符下输入以下命令:

1
bp foo

如果您想为内核态函数设置断点,可以在函数名前面加上 nt! 前缀。例如,如果您想为内核态函数 bar 设置断点,可以在 WINDBG 的命令提示符下输入以下命令:

1
bp nt!bar

设置完断点后,您可以使用 g 命令启动程序的执行。当程序执行到断点处时,WINDBG 将暂停程序的执行,并进入交互式调试模式。您可以在交互式调试模式下使用 k 命令来查看调用堆栈,从而了解从内核态调用用户态函数的具体过程。

 

例如,如果您想查看从内核态函数 foo 调用用户态函数 bar 的过程,可以在 WINDBG 的命令提示符下输入以下命令:

1
bp nt!foo
回复