Re: 什么样的情况下pdtb和cr3不一致?
Windows内核调试
什么样的情况下pdtb和cr3不一致?
wrong
2011-03-02, 10:15 上午
在使用livekd的时候,经常会提示
WARNING: Process directory table base DCA49340 doesn't match CR3 DCA49360,
看了一下,
DCA49340 是windbg进程的,
而DCA49360是livekd的,
理论上cr3会保存当前进程的directory table base,什么样的条件下,它们会不一致?
Re: 什么样的情况下pdtb和cr3不一致?
格蠹老雷
2011-03-04, 13:06 下午
在真实系统中,如果发生双误、NMI或者MCE,那么CPU会使用硬件的任务切换机制通过TSS切换到新的线程,期间会更换CR3,然后蓝屏,这时当前进程通常还没有更新,导致当前进程的PDBR和CR3不一致。
对于使用LiveKD,LiveKD是通过抓取快照方式工作的,抓取信息的时间点可能不同,导致这两个信息不一致
Re: 什么样的情况下pdtb和cr3不一致?
wrong
2011-03-15, 15:42 下午
当前进程可能是随机的,但是CR3的值总是livekd进程的。
在网上找了篇文章,说的和张老师差不多 http://analyze-v.com/?p=410