gdb高階除錯方法
【原文:http://blog.csdn.net/wwwsq/article/details/7086151】
1,啟動gdb的時候自動執行指令碼
gdb -x your_script
注意:your_script裡面只能有gdb命令。不過我們都知道gdb命令裡面有個shell指令,所以實際上這裡可以做任何事。
2,除錯執行中的程式
在gdb裡面有個attach指令,可以除錯執行中的程式。
結合上面的-x引數,實際上我們可以寫一個指令碼,自動的attach到我們關心的程式上面,然後自動的做很多事情:比如設定trace命令並且continue。
3,設定條件斷點
break test_func() if x == 5
可以在x == 5 的時候中斷在test_func()裡面
4,在斷點自動執行命令
break test_func() if x == 5
commands
>shell ls
>continue
>end
可以在命中斷點的時候自動執行命令。
5,結合以上各點,我們可以做什麼呢?
我們可以除錯執行中的一個程式,當發現程式嘗試mallc()超過100KB的記憶體塊的時候,就寫一行日誌然後給ops發一封電子郵件。
我們還可以除錯執行中的一個程式,讓這個程式把它的每個細節都列印到日誌裡面去。
我們可以讓這個執行中的程式,在任何條件下執行任何他自己的任何函式。
我們可以讓這個執行中的程式,進行各種跳轉。
簡單的說我們可以控制這個程式,做任何事情。
這基本上是一個C++版的AOP(面向切面程式設計)了。而且更底層、更徹底。
相關文章
- gdb高階除錯命令高階除錯
- gdb除錯除錯
- GDB除錯基礎使用方法除錯
- GDB除錯MySQL除錯MySql
- gdb除錯命令除錯
- GDB除錯指令除錯
- JVM高階效能除錯JVM除錯
- GDB 除錯程式碼除錯
- gdb除錯多程式除錯
- GDB除錯彙總除錯
- 用GDB除錯程式除錯
- GDB多程式除錯除錯
- gdb除錯多程序除錯
- gdb除錯快速上手除錯
- gdb除錯總結除錯
- gdb 除錯入門,大牛寫的高質量指南除錯
- 《Windows高階除錯》點評Windows高階除錯
- .NET高階除錯系列-Windbg除錯入門篇高階除錯
- 介紹 GDB 除錯 Go除錯Go
- GDB除錯命令詳解除錯
- C語言——gdb除錯C語言除錯
- 用GDB除錯程式(六)除錯
- GDB除錯使用記錄除錯
- Codeblocks和gdb除錯BloC除錯
- linux 下GDB除錯Linux除錯
- 使用 gdb 工具除錯 Go除錯Go
- gdb除錯coredump檔案除錯
- .NET 5 程式高階除錯-WinDbg高階除錯
- JVM高階效能除錯實戰JVM除錯
- vi/vim使用進階: 在VIM中使用GDB除錯 – 使用vimgdb除錯
- C編譯: 使用gdb除錯編譯除錯
- Linux核心使用gdb除錯Linux除錯
- C 編譯: 使用 gdb 除錯編譯除錯
- GDB程式碼除錯與使用除錯
- 使用 GDB 除錯多程式程式除錯
- 使用gdb編譯除錯mysql編譯除錯MySql
- 用GDB除錯程式(二) (轉)除錯
- 用GDB除錯程式(四) (轉)除錯