2011-10-18 22 views

回答

3

我相信gdb使用MMU,以便包含監視地址範圍的內存頁面被標記爲受保護 - 那麼當發生寫入受保護頁面的異常時,gdb處理異常,檢查是否寫入地址對應於特定的觀察點,然後相應地恢復或下降到gdb命令提示符。

您可以使用mprotect來實現類似於您自己的調試代碼或測試工具的東西,但如果您想做更復雜的事情而不是錯過寫入失敗,則需要實現異常處理程序。

+0

感謝您的信息。有沒有可用的硬件支持。我知道那只是在黑暗中拍攝而已。 – Kapil

+1

MMU(內存管理單元)*是硬件 - 通過將頁面標記爲受保護,您可以在寫入該頁面時獲得異常 - 這就是硬件輔助觀察點的工作原理。如果沒有MMU,您必須在每條指令後暫停並檢查所有觀察點地址範圍 - 這就是軟件觀察點通常在沒有MMU(例如小型嵌入式系統)的系統上工作的方式,而且速度非常慢。 –

7

This解釋瞭如何在Linux中實現硬件斷點,並給出了有關使用哪些處理器特定功能的詳細信息。

相關問題