Re: 发现几个问题,请问Raymond,发现错误是否发在这里,还是再开一个版面

《软件调试》答疑

发现几个问题,请问Raymond,发现错误是否发在这里,还是再开一个版面


jlflyfox 2009-01-20, 18:11 下午

刚好阅读到p61分页机制,之前,我发现了1个错误和2个疑问

 

1、p60那个14,偏移应该是c88

2、p58-p59的2.7.5应该加一个说明,就是第一个windbg attach后找到虚拟地址后,可能需要detach,否则第二个可能看不准

3、2.7.6 4M内存页情况,是否应该加一个attach 0号system进程哦,不过我自己attach不上

Re: 发现几个问题,请问Raymond,发现错误是否发在这里,还是再开一个版面


格蠹老雷 2009-01-20, 23:22 下午
多谢你的建议,请管理员新加了一个版面,叫《软件调试》勘误与意见。
问题1的确是错误,已经在勘误列表中,http://advdbg.org/books/swdbg/errata.aspx,编号3.
问题2,因为第二个WinDBG是内核调试会话,所以第一个WinDBG不需要detach。不知道你说看不准是什么意思?
问题3,因为是在内核调试会话中,不需要attach到System进程,WinDBG中,attach命令是用来开始用户态调试会话的,也就是附加到一个应用程序进程,系统进程没有用户态部分,所以根本不能做用户态调试。我们要观察的是内核态的数据(页表、页目录等),因为内核空间是唯一的,所以当前在任何进程上下文都可以。

Re: 发现几个问题,请问Raymond,发现错误是否发在这里,还是再开一个版面


jlflyfox 2009-01-22, 15:13 下午

谢谢回答。

对于2,我这里,如果用户模式的windbg不detach,那么内核模式的windbg看那个被attach的calc的页目录和页表,特别是后者,发现有的时候就是全0,我那边detach后,就没有问题,所以我也一度怀疑就是你上次教我的海森伯效应,但感觉又不象。

对于3,我自己这里尝试了几次,.process 打开的进程都是windbg本身,而不是system,所以才有疑问。

 

Re: 发现几个问题,请问Raymond,发现错误是否发在这里,还是再开一个版面


格蠹老雷 2009-01-22, 20:26 下午
对于问题2,也许是巧合吧。
对于问题3,.process显示的是调试器眼里的当前进程,因为内核空间是所有进程共享的,所以当前进程是哪个都无所谓。也就是说,即使当前进程是WinDBG,也不影响观察页表、页目录这些位于内核空间的数据。

Powered by Community Server Powered by CnForums.Net