2012-01-04 52 views
2

在網絡上似乎沒有關於這個話題的很多信息。Ring0(內核模式)調試器是如何實現的?

有人能解釋一下內核模式調試器背後的一般思想是什麼, 以及這些工具是如何實現的?從我所蒐集的內容看來,它們似乎只在調試器的用戶操作系統下運行 自己的小操作系統,但我不太確定。

謝謝你的時間。

回答

2

沒有必要實現另一個隱形操作系統來調試操作系統內核。只要正在被調試的內核仍然活着,就可以執行線程,停止並恢復它們(當然,如果系統是多處理器,則在所有CPU上),並且有一種方法可以使用控制檯或專用I/O端口,這就夠了。

在內核線程中設置斷點通常以與用戶線程中相同的方式完成。閱讀和寫作記憶也是如此。

使用調試器實際運行的額外PC進行內核調試很方便。兩臺PC可以使用串行1394 USB或網絡連接進行連接。調試對象必須配置爲在調試端口上偵聽調試命令並作出適當的響應(例如停止/重啓執行,讀/寫內存,設置/重置斷點等)。調試對象必須具有專用調試器線程(或類似於線程的某個線程)來搶佔其他現有線程並執行請求的調試命令(如上所述)。