Linux驅動調試手段:KDB

1.KDB介紹

KDB是Linux內核調試補丁,提供一種在系統能運行時對內核內存和數據結構進行檢查的辦法。它不允許進行源代碼級別上的調試。可以添加額外的命令,給出該數據結構的標識或地址。

2.KDB操作

a.處理器單步執行。
b.執行到某條特定指令時停止。
c.當存取(或修改)某個特定的虛擬內存位置時停止。
d.當存取輸入/輸出地址空間中的寄存器時停止,通過進程ID對當前活動的任務和所有其他任務進行堆棧回溯跟蹤。
e.對指令進行反彙編。
f.追擊內存溢出。

3.KDB配置

參考其他教程

4.KDB激活

激活:
echo “1”> /proc/sys/kernel/kdb

取消激活:
echo “0”> /proc/sys/kernel/kdb

5.KDB命令

運行:
go:繼續程序執行。
ss:單步執行程序。
ssb:執行到分支或函數調用時停止。

內存顯示和修改
md:顯示內存內容。
mdr:顯示原始的內存內容。
mm:修改內存內容
mds:以符號的方式顯示內存內容。
寄存器修改和顯示
rd:顯示寄存器內容。
rm:修改寄存器內容。
ef:顯示異常幀。

斷點
bp/b1:設置或顯示斷點。
bc/be:清除/激活斷點。
bd:使斷點無效。
bpa:設置或顯示全局斷點。
bph/bpha:設置硬件斷點或顯示所有斷點。

堆棧
bt:顯示調用堆棧。
btp:顯示進程的堆棧。
bta:顯示所有進程的堆棧。
btc:命令對每個活動CPU上正在運行的進程執行堆棧回溯。
其他命令
參考help。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章