2013-05-03 54 views
2

我想爲x86架構構建一個簡單的Linux內核調試器。我首先想要它設置斷點。我想知道是否有配置調試器寄存器的內核API,如果有的話,還有什麼好的文檔?如果調試器沒有內核api,那麼是否有任何關於如何手動正確配置寄存器的文檔(使用程序集「MOV」指令)?Linux內核硬件斷點

+1

爲什麼你不能使用'kgdb'? – 2013-05-03 16:36:26

回答

3

這取決於您想要處理的內核版本。

有一個API用於在內核中設置硬件斷點,至少從2.6.33開始,儘管它可能在3.0-3.2版本中有所變化。

看看register_wide_hw_breakpoint()函數kernel/events/hw_breakpoint.c和它附近的人。

該文檔似乎很少,但有關於如何在內核中使用該API的​​,它可能會有所幫助。

使用該API的更復雜的示例可以在RaceHound project中找到。

+0

感謝你,@Eugene;交叉引用:我發佈了一個例子http://stackoverflow.com/questions/19725900/watch-a-variable-memory-address-change-in-linux-kernel-and-print-stack-trace/19755213# 19755213 ...乾杯! – sdaau 2013-11-03 16:39:30