|
|
|
|
|
|
|
WinDbg
帖子发起人: mjshare 发起时间: 2009-07-30 14:40 下午 回复: 6
|
帖子排序:
|
|
|
|
2009-07-30, 14:40 下午
|
mjshare
注册: 2009-07-30
发 贴: 3
|
|
|
我在调试内核时出现的如下问题;
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'
只要出出现调试用户态空间是就出问题了;
请问下这个是什么原因呀;
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-07-30, 15:19 下午
|
MJ0011
注册: 2008-04-24
发 贴: 112
|
|
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-07-30, 18:32 下午
|
王宇
注册: 2007-05-08
发 贴: 306
|
|
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-07-30, 21:04 下午
|
格蠹老雷
注册: 2005-12-19
发 贴: 1,303
|
|
|
kernel32.dll和ntdll.dll都是用户态的模块,内核调试对话中通常不加载这些模块,所以WinDBG显示错误信息。
解决的办法是,在用户态会话中观察;或者当当前进程不是IDLE和System进程时,执行.reload /user加载用户态模块。
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-07-31, 00:16 上午
|
mjshare
注册: 2009-07-30
发 贴: 3
|
|
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-07-31, 00:17 上午
|
mjshare
注册: 2009-07-30
发 贴: 3
|
|
|
我想这位仁兄多疑了;id就代号而以,没有什么意思;
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-07-31, 12:40 下午
|
格蠹老雷
注册: 2005-12-19
发 贴: 1,303
|
|
|
估计你试验的是第二种方法,因为WinBDG默认使用懒惰的(Lazy)模块加载策略,确实需要时才加载,所以有时可能需要先执行一下k命令,让其追溯栈回溯,从而需求用户态的模块,然后再重载模块。
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
高端调试 » 软件调试 » WinDbg » Re: 急求助windbg问题
|
|
|
|
|
|