在stack walk的时候对ntdll!KiUserExceptionDispatcher是不是要特殊处理?

Windows内核调试

在stack walk的时候对ntdll!KiUserExceptionDispatcher是不是要特殊处理?


Thomson 2010-03-06, 16:30 下午
像windbg的k命令, 如果碰到一个function地址在ntdll!KiUserExceptionDispatcher范围里面,stack walk是要特殊处理,和其它的frame不一样吗?

Re: 在stack walk的时候对ntdll!KiUserExceptionDispatcher是不是要特殊处理?


格蠹老雷 2010-03-06, 16:51 下午
何出此言?不需要啊,比如:
0:000> k
ChildEBP RetAddr
0012ff80 00401076 ntdll!KiUserExceptionDispatcher
0012ff80 00401289 AcsVio!main+0x66 [C:\DbgLabs\AcsVio\AcsVio.cpp @ 25]
0012ffc0 7c817077 AcsVio!mainCRTStartup+0xe9 [crt0.c @ 206]
0012fff0 00000000 kernel32!BaseProcessStart+0x23

Re: 在stack walk的时候对ntdll!KiUserExceptionDispatcher是不是要特殊处理?


Thomson 2010-03-06, 19:41 下午
我是说在程序自己实现或者manual stack walk的时候.

因为从nt!kidispatchexception返回(需要到user mode下面去dispatch)的时候,好像没有把原来系统调用的返回地址存在ntdll!KiUserExceptionDispatche的参数的下面作为返回地址.

Powered by Community Server Powered by CnForums.Net