2012-02-29 29 views
2

我有一個編譯了KDB的內核。我可以使用/proc/sysrq-trigger和全部觸發它,但是我希望能夠從內核代碼明確地輸入KDB,而不必重新編譯內核恐慌,這會讓我的系統陷入混亂。喜歡的東西:如何從內核代碼中觸發KDB?

if (interesting_condition) 
    enter_kdb(); 

有沒有在內核中有類似的功能或更好的方法來從它觸發KDB比做一個頁面錯誤?

回答

2

KDB_ENTER()
就這麼簡單。

+0

不幸的是,這似乎並不存在於最新的內核源代碼中。 git grep KDB_EN​​TER不會返回任何有意義的內容。 – Gnurou 2012-03-01 02:17:24

+0

它應該在平臺相關頭文件('/ include/asm-xxx/kdb.h')中。我不知道git,但lxr.linux.no不顯示這些標題。在我的Linux 2.6中,它存在於i386和x86_64中。 – ugoren 2012-03-01 09:03:14

+0

還是不行。我正在爲ARM編譯,內核爲2.6.39。但是我發現'kgdb_breakpoint'確實有效。 – Gnurou 2012-03-02 04:35:53