gdbkerneldebug的程式斷點
gdb除錯kernel的時候, 如果設定通用函式斷點, 比如vfs_read, 就會遇到一堆撞到斷點的地方, 比如tty輸入一個字元, 就是vfs_read, 沒辦法除錯具體的某一個程式
一種辦法就是條件斷點, 其實不是很好用, 比如用pid, 但是有時候這個程式還沒啟動, 比如task的comm來判定, 但是kernel中是不支援strcmp來判斷字串是否相等, 因為需要跑函式
gdb 7.5對此問題做了增強, gdb自己去比較字串, 而不需要機器去跑程式碼
https://sourceware.org/gdb/current/onlinedocs/gdb/Convenience-Funs.html#Convenience-Funs
b do_fault if $_streq($lx_current()->comm, "a.out")
還可以對呼叫者來做條件斷點, 比如a->c, b->c, 斷點只停在b呼叫c的地方
$_caller_is(name[, number_of_frames])
Returns one if the calling function’s name is equal to name. Otherwise it returns zero.
If the optional argument number_of_frames is provided, it is the number of frames up in the stack to look. The default is 1.
Example:
(gdb) backtrace
#0 bottom_func ()
at testsuite/gdb.python/py-caller-is.c:21
#1 0x00000000004005a0 in middle_func ()
at testsuite/gdb.python/py-caller-is.c:27
#2 0x00000000004005ab in top_func ()
at testsuite/gdb.python/py-caller-is.c:33
#3 0x00000000004005b6 in main ()
at testsuite/gdb.python/py-caller-is.c:39
(gdb) print $_caller_is ("middle_func")
$1 = 1
(gdb) print $_caller_is ("top_func", 2)
$1 = 1
相關文章
- JAVA編寫的斷點續傳小程式Java斷點
- 程式設計的知識點 (不斷積累,終身程式設計)程式設計
- Pycharm的斷點除錯PyCharm斷點除錯
- fiddler斷點功能斷點
- 判斷難點
- AS斷點除錯斷點除錯
- 新版的Chrome斷點有問題Chrome斷點
- 12. 斷點續傳的原理斷點
- webstorm 斷點除錯WebORM斷點除錯
- windows 訊息斷點Windows斷點
- 前端斷點及使用前端斷點
- Vscode斷點除錯VSCode斷點除錯
- 在 Python 除錯過程中設定不中斷的斷點Python除錯斷點
- PyTorch儲存模型斷點以及載入斷點繼續訓練PyTorch模型斷點
- [譯] Xcode 中的使用者斷點XCode斷點
- 針對於debugger斷點的記錄斷點
- 中斷和中斷處理程式
- goland dlv 斷點無效GoLand斷點
- phpstorm + xdebug 斷點除錯PHPORM斷點除錯
- vscode除錯使用斷點VSCode除錯斷點
- 除錯——條件斷點除錯斷點
- Fiddler大全之斷點操作斷點
- Xcode斷點除錯出現的問題XCode斷點除錯
- 關於http斷點續傳那點事HTTP斷點
- 斷點(上線版) - 阿韋斷點
- Windows PHPstorm xdebug 斷點除錯WindowsPHPORM斷點除錯
- 斷點除錯 debug模式 1006斷點除錯模式
- 斷點續傳教學例子斷點
- 【IDEA】2020 斷點(BreakPoints)除錯Idea斷點除錯
- 矩陣爆破逆向之條件斷點的妙用矩陣斷點
- 實現ABAP條件斷點的三種方式斷點
- fiddler之設定斷點的學習記錄斷點
- 轉:檔案的斷點下載服務端斷點服務端
- 斷點除錯之壓縮引發的血案斷點除錯
- Android中的多執行緒斷點續傳Android執行緒斷點
- IDEA如何給debug斷點加上篩選條件判斷Idea斷點
- Lua中如何實現類似gdb的斷點除錯—07支援通過函式名稱新增斷點斷點除錯函式
- iOS開發 - Xcode不走斷點iOSXCode斷點