通过命令kd> x win32k!*,可以看到如下一行:
bf934ffe win32k!NtGdiAbortDoc = <no type information>
但是,如果通过如下指令查看,却得到如下错误提示:
kd> uf bf934ffe No code found, abortingkd> u bf934ffewin32k!NtGdiAbortDoc:bf934ffe ?? ??? ^ Memory access error in 'u bf934ffe'
另外,有一些win32k中的函数是可以通过uf 和 u 查看的。
Q:请问一下出现这个错误提示的原因,谢谢!
Host OS:winxp sp2
Guest OS:winxp sp2 (VMware)
我是在内核调试时,发现这个问题的,今天又重新试了一下,发现问题依然存在:x win32k!*时有很多输出结果。但uf一些函数可以正常输出,但是一些函数不能够反汇编(例如:win32k!NtGdiAbortDoc ),提示错误:No code found, aborting
我看到你的回复:
"那么可能要读的内容不在物理内存中,也可能是页表已经混乱 "
请问能否将具体的解决方法说明一下,谢谢!
问题依然存在,我再想一想...
kd> .pagein bf934ffePagein operations are only supported for user mode addresses due to limitations in the memory managerkd> .pagein /f bf934ffeYou need to continue execution (press 'g' <enter>) for the pagein to be brought in. When the debugger breaks in again, the page will be present.kd> gBreak instruction exception - code 80000003 (first chance)nt!RtlpBreakWithStatusInstruction:80526da8 cc int 3kd> uf bf934ffeNo code found, aborting
很赞成LLX和王宇,这是王宇在2031那个帖子中的话:
那是因为 w32k.sys 是 GDI 相关的,而 System 进程没有自己的用户态空间。类似的还有 Idel 进程。不信你切换过去试试~
很多时候内核调试中断下来时,是在IDLE进程,所以无法读取Win32K的内容,应该切换到其它进程再观察。