gdb除錯命令小結_與多檔案除錯_遠端除錯
摘要:在vs2010下,我們除錯起來相當方便,但是使用gdb除錯的時候,卻困難重重。本文主要為你介紹如何在gdb下進行除錯和如何將gdb打造成一個整合的編譯環境。
1.gdb命令小結
設定斷點:break(b) linenum
b functionname
如果是在除錯多個檔案,可以這樣設定斷點:
(gdb) break [<file-name>:]<func-name> (gdb) break [<file-name>:]<line-num> |
跳轉:
從當前函式退出:finish
從當前迴圈退出:until
檢視:
變數的值:p name
程式碼:list linenum
list funcname
執行:
執行到地一句:start
連續執行:run
繼續執行:continue
單步執行:next
進入函式內部:step
2.gdb的替代——整合開發環境
linux下的除錯環境,如果使用vim和gdb會很容易讓人崩潰,此時我們不妨在除錯的時候使用一些IDE,比如Anjuta
3.其他的一些整合環境
此處有免費的10個C/C++整合開發環境。
4.多檔案除錯
在實際工程中,往往有多個檔案,此時需要跨越檔案進行除錯。例如,我們在stack.c中定義了pop、push等操作,在main.c中引用了這些操作,假如在main.c的第10行引用了push,我們可以這樣寫:
b main.c:10
設定斷點,然後使用step命令,進入函式內部進行除錯。
5.自動顯示:
如果我們比較關心某個變數,必然很想知道程式每次執行停下來的時候,該變數的值,這裡,我們用到了display命令:
display <expr> display/<fmt> <expr> display/<fmt> <addr>gdb attach 除錯
遠端除錯
遠端除錯的原理
遠端除錯的方法
遠端除錯的相關問題
5.幾個常用的需求
1)條件斷點:在滿足某個條件的時候才設定斷點:
break 30 if x==3
info break
2)觀察點:一旦某個表示式的值有變化,立馬停止程式:
watch expr
3)觀察點的禁用與刪除:
刪除設定在某一行的斷點:
clear 39
刪除第幾個斷點:
d 1
禁用第幾個斷點:
disable 1
4)自動化除錯
說明:我們使用斷點的目的,往往是希望程式停留在某處,這樣好讓我們檢視某個變數的值;但是,如果每次都輸出print相關變數的數值,這樣會造成時間上的浪費,所以,我們可以進行自動化除錯,這樣每次程式執行到某個地方,自動列印相關變數的值。
break foo if x>0 commands printf "x is %d\n",x continue end
斷點設定在函式foo中,斷點條件是x>0,如果程式被斷住後,也就是,一旦x的值在foo函式中大於0,GDB會自動列印出x的值,並繼續執行程式。
如果你要清除斷點上的命令序列,那麼只要簡單的執行一下commands命令,並直接在打個end就行了。
最開始使用gdb,最不方便的地方就在於無法在除錯的同時觀看code;這裡,我們使用引數 gdb -tui program 就可以實現如同windows一樣的除錯介面了,tui的意思是terminal user interface.
相關文章
- gdb除錯命令除錯
- gdb除錯coredump檔案除錯
- 智慧小程式檔案館——遠端除錯除錯
- gdb除錯多程式除錯
- GDB多程式除錯除錯
- gdb除錯多程序除錯
- gdb除錯總結除錯
- gdb除錯除錯
- GDB除錯命令詳解除錯
- gdb高階除錯命令高階除錯
- Mobile Web 除錯指南(2):遠端除錯Web除錯
- gdb多執行緒多程序除錯命令執行緒除錯
- 在海思晶片上使用GDB遠端除錯晶片除錯
- 智慧小程式檔案館——再談遠端除錯除錯
- GDB除錯MySQL除錯MySql
- GDB除錯指令除錯
- Pycharm遠端除錯PyCharm除錯
- 前端遠端除錯前端除錯
- chrome 遠端除錯Chrome除錯
- 使用 GDB 除錯多程式程式除錯
- gdb除錯core dump檔案之二除錯
- 除錯篇——除錯物件與除錯事件除錯物件事件
- GDB程式碼除錯與使用除錯
- GDB 除錯程式碼除錯
- GDB除錯彙總除錯
- 用GDB除錯程式除錯
- gdb除錯快速上手除錯
- GDB多執行緒除錯分析執行緒除錯
- PHPSTROM遠端除錯PHP除錯
- pycharm 遠端除錯配置PyCharm除錯
- Spark 1.5.0 遠端除錯Spark除錯
- VS - 打斷點/本地除錯/遠端除錯 問題斷點除錯
- 介紹 GDB 除錯 Go除錯Go
- C語言——gdb除錯C語言除錯
- 用GDB除錯程式(六)除錯
- GDB除錯使用記錄除錯
- Codeblocks和gdb除錯BloC除錯
- linux 下GDB除錯Linux除錯