Re: 急求助windbg问题

WinDbg

急求助windbg问题


mjshare 2009-07-30, 14:40 下午

我在调试内核时出现的如下问题;

kd> u nt!NtReadFile
nt!NtReadFile:
80575117 6a68            push    68h
80575119 6810234f80      push    offset nt!GUID_DOCK_INTERFACE+0x374 (804f2310)
8057511e e818e3f6ff      call    nt!_SEH_prolog (804e343b)
80575123 33f6            xor     esi,esi
80575125 8975e0          mov     dword ptr [ebp-20h],esi
80575128 8975cc          mov     dword ptr [ebp-34h],esi
8057512b 897590          mov     dword ptr [ebp-70h],esi
8057512e 897594          mov     dword ptr [ebp-6Ch],esi

但是

kd> u kernel32!createfilew
Couldn't resolve error at 'kernel32!createfilew'

kd> x ntdll!*
           ^ Couldn't resolve 'x ntdll'

 

只要出出现调试用户态空间是就出问题了;

请问下这个是什么原因呀;

 

Re: 急求助windbg问题


MJ0011 2009-07-30, 15:19 下午
creatfilew,原来还有这么好玩的API

Re: 急求助windbg问题


王宇 2009-07-30, 18:32 下午
楼主的ID是不是MJ放血的意思? :P

Re: 急求助windbg问题


格蠹老雷 2009-07-30, 21:04 下午
kernel32.dll和ntdll.dll都是用户态的模块,内核调试对话中通常不加载这些模块,所以WinDBG显示错误信息。
解决的办法是,在用户态会话中观察;或者当当前进程不是IDLE和System进程时,执行.reload /user加载用户态模块。

Re: 急求助windbg问题


mjshare 2009-07-31, 00:16 上午

谢谢指点;

我试下了下;还是不行;

Re: 急求助windbg问题


mjshare 2009-07-31, 00:17 上午
我想这位仁兄多疑了;id就代号而以,没有什么意思;

Re: 急求助windbg问题


格蠹老雷 2009-07-31, 12:40 下午
估计你试验的是第二种方法,因为WinBDG默认使用懒惰的(Lazy)模块加载策略,确实需要时才加载,所以有时可能需要先执行一下k命令,让其追溯栈回溯,从而需求用户态的模块,然后再重载模块。

Powered by Community Server Powered by CnForums.Net