在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的参数的下面作为返回地址.