约有 1,303 项符合查询结果, 以下是第 88 - 131项。
费时 < 1 秒。
kernel32.dll和ntdll.dll都是用户态的模块,内核调试对话中通常不加载这些模块,所以WinDBG显示错误信息。
解决的办法是,在用户态会话中观察;或者当当前进程不是IDLE和System进程时,执行.reload /user加载用户态模块。
Posted in WinDbg
by
格蠹老雷
on 2009-07-30
多谢各位。也有可能同时写:-)
对于用户态,主要会针对使用IDE比较难调试的任务,已经想到的议题有(不分先后):
A.1 远程过程调用(RPC)
A.2 死锁
A.3 跨进程通信
A.4 没有源代码的调试
A.5 堆方面的问题,随机发生的释放时错误,堆损坏等
A.6 异常和崩溃
A.8 窗口消息
A.9 WOW
A.10 使用内核调试会话来调试特殊进程
A.11 用户态地址空间
A.12 用户态调试时的通用技巧和经验
对于内核态,已经想到的议题有:
K.1 系统挂死
K.2 蓝屏崩溃
K.3 ACPI调试
K.4 驱动程序调试,WDM/WDF
K.5 资源冲突
K.6 ...
Posted in 社区活动
by
格蠹老雷
on 2009-07-29
这在内核调试时是可能发生的,因为在执行t命令时,调试器会设置跟踪标志,然后恢复目标系统运行,此后可能立刻发生线程切换动作,那么CPU便去执行其它线程了,如果在执行其它线程时发生异常,比如遇到断点或者发生楼主所示的访问违例,那么便可能中断到调试器中。
Posted in Windows内核调试
by
格蠹老雷
on 2009-07-29
很好的意见,下一次印刷时会将第二处统一为向低地址方向生长的。多谢
Posted in 《软件调试》的示例程序
by
格蠹老雷
on 2009-07-29
CPU在执行IDLE线程,IRQL在DISPATCH_LEVEL,DPC队列中也只有一个任务。由此看,内核的健康状况还很好,CPU是可以响应鼠标设备的硬件中断的。鼠标的光标绘制有硬件支持,不依赖于顶层。
Posted in Windows内核调试
by
格蠹老雷
on 2009-07-28
CaseChen说的很对。我补充几句。首先IA(Intel Architecture) CPU的分段机制是不可以禁止的,分页机制可以禁止或者启用。
保护模式下,从外部看来,CPU接受的都是线性地址。或者说,是没有办法告诉CPU,“这就是个物理地址,你直接访问吧”。如何启用分页,那么在访问任何物理地址,都需要先将其映射好。是的,像你所说的,ESP所指向的栈空间在线性地址空间中是连续的,但是它们所对应的物理内存页可能不连续。
Posted in CPU架构
by
格蠹老雷
on 2009-07-28
CaseChen,好久没光临了么:-)
《观止》是本挺好的书,不过这样的书很难翻译,译文中一定有不少毛病。
实例集锦——实战系列,还在准备材料的过程中,书名也还没有想好,打算至少分两本写,一本是内核态,一本是本地用户态,还在犹豫应该先写哪一本。很想听听你和其他朋友的意见:-)
从上面最后的几句话来看,我们可算是知音了......
Posted in 社区活动
by
格蠹老雷
on 2009-07-28
多谢反馈。第一个问题是不一致,因为AllocStk更容易理解些,所以我会将程序代码改为这个名字。
第二个问题,第12行应该改为键入knL,但是书中的命令结果是对的,你上面贴出来的结果可能是观察的目标不一样,或者你的机器上有挂钩模块进入了这个进程,本来AllocStk没有窗口,栈中不该出现InternalDialogBox,也不使用WININET.DLL。注意应该在初始断点命中时设置断点,当断点命中时观察。
Posted in 《软件调试》的示例程序
by
格蠹老雷
on 2009-07-28