2.1 啟動調試
在程序開始調試之前,要確保程序在gcc、g++編譯時,有如下-g的添加調試信息的選項
gcc -g test.c -o test
1、啟動未運行的程序
啟動未運行的程序,只需要在對應程序目錄中使用下面的命令
gdb test
2、調試已經開始運行的程序進程
調試已經開始運行的程序進程,首先先用top命令查看運行的程序進程的pid如下:
比如我要加載的程序qemu-system-x86的pid為269427,則用下面的命令將進程附加到GDB調試
gdb attach 269427#gdb attach [進程號]
或者先打開gdb,在gdb中輸入attach 269427也可以。效果如下
此時程序是處于暫停狀態的,用下面的命令讓程序繼續運行
#前面是縮寫,#后是全寫,兩者皆可
(gdb) c#continue
效果如下:
2.2 斷點管理
添加斷點
?方法一
#源程序只有一個文件
b [行號]#break [行號]
?方法二
#源程序多個個文件
b [文件名.c]:[行號]#break [文件名.c]:[行號]
添加斷點后如下所示:
查看所有斷點
info b#info break
效果如下:
我們可以看到所有的斷點還有斷點的編號
刪除斷點
delete#刪除所有斷點
delete [斷點編號]#刪除指定斷點
2.3 中斷調試執行
s#step 單步執行,進入函數調用
n#next 逐行執行當前線程的代碼,不進入函數調用
c#continue 執行代碼到下一個斷點
f#finish 執行完當前函數并跳出
ignore [斷點號] [次數]#設置或修改運行時斷點的忽略計數
2.4 運行參數監控
p [變量名]#print [變量名] 輸出該變量的值
display [變量名]#調試運行的每一步自動輸出該變量的值
bt#顯示當前的函數調用堆棧情況
list [行數]#顯示當前執行的代碼,默認10行
watch [變量名]#設置變量監視點,在變量值改變時暫停程序。
info breakpoints#顯示當前已設置的斷點列表。
info watchpoints#顯示當前已設置的監視點(觀察點)列表。
info functions#顯示程序中定義的所有函數列表。
info variables#顯示程序中定義的所有全局變量和靜態變量列表。
info locals#顯示當前函數的局部變量信息。
info args#顯示當前函數的參數信息。
info threads#顯示當前正在運行的所有線程信息。
info registers#顯示當前線程的寄存器值。
info frame#顯示當前的調用幀信息。
info sharedlibrary#顯示加載的共享庫信息。
info inferior#顯示當前程序的執行狀態信息。
info record#顯示反復執行的命令數量。
info breakpoints location < address >#顯示指定地址上設置的斷點信息。
info break
2.5 多線程調試
info thread#命令查看當前線程的信息
info threads#命令查看當前所有線程
frame [棧幀號] #命令切換到指定的棧幀
thread [線程號]#切換到指定線程
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
程序
+關注
關注
117文章
3785瀏覽量
81004 -
調試工具
+關注
關注
1文章
49瀏覽量
12633 -
gdb
+關注
關注
0文章
60瀏覽量
13295
發布評論請先 登錄
相關推薦
請問如何建立開發環境
如版主所寫,Linux的開發環境建立(1)編譯器arm-linux-gcc-3.4.1(2)Jflash-s3c2410:S3C2410芯片的JTAG工具(3)安裝gdb調試工具在裝載這些工具
發表于 05-20 05:45
VIM編輯器怎么實現對嵌入式軟件的調試功能?
GNU免費提供了一整套工具鏈,為嵌入式Linux程序的開發和調試提供了完整的支持。其強大的gdb調試工具可以方便地對嵌入式平臺上的程序進行跟蹤調試
發表于 08-30 07:18
VIM中怎么實現嵌入式軟件調試?
GNU免費提供了一整套工具鏈,為嵌入式Linux程序的開發和調試提供了完整的支持。其強大的gdb調試工具可以方便地對嵌入式平臺上的程序進行跟蹤調試
發表于 03-06 07:50
如何搭建嵌入式Linux的GDB調試環境
linux 領域我們最常用的就是GDB 調試工具,通過GDB 來調試嵌入式C 程序。本章我們首先學習如何搭建嵌入式Linux的GDB
發表于 11-05 06:03
基于Windows的ARM GCC開發環 境
本文以 N32G430 系列 MCU 為例,介紹了在 Windows 環境下基于 vscode 編輯器、GCC 編譯工具鏈和 GDB 調試工具進行搭建開發環境,進行代碼編譯、固件下載和代碼調試
發表于 11-02 06:27
N32G031系列GCC開發環境應用筆記分享
本文以 N32N031 系列 MCU 為例,介紹了在 Windows 環境下基于 vscode 編輯器、GCC 編譯工具鏈和 GDB 調試工具進行搭建開發環境,進行代碼編譯、固件下載和代碼調試
發表于 11-02 07:20
嵌入式Linux和嵌入式Linux開發環境
嵌入式Linux開發
圖1是一個典型的嵌入式Linux開發環境它包括主機工作站或者PC 支持GDB的調試工具BDI2000 目標板和網絡.除了硬件環境外還需要軟件開發環境有兩
發表于 09-10 10:22
?119次下載
如何在VIM中對嵌入式軟件進行調試
GNU免費提供了一整套工具鏈,為嵌入式Linux程序的開發和調試提供了完整的支持。其強大的gdb調試工具可以方便地對嵌入式平臺上的程序進行跟蹤調試
發表于 06-30 10:39
?1146次閱讀
初學GDB調試工具需要注意的事項
GDB是一個由GNU開源組織發布的、UNIX/LINUX操作系統下的、基于命令行的、功能強大的程序調試工具。相比于VS里面的圖形化調試工具,其功能更加強大。
發表于 05-16 17:45
?1119次閱讀
STM32CubeIDE乃ST官方提供的免費且功能強大的集成開發工具
STM32CubeIDE乃ST官方提供的免費且功能強大的集成開發工具,令STM32Cube生態系統更為豐富強勁。它基于Eclipse/CDT框架、GCC編譯工具鏈和GDB調試工具,并支
Linux嵌入式 gdb VSCode圖形化調試教程
linux 領域我們最常用的就是GDB 調試工具,通過GDB 來調試嵌入式C 程序。本章我們首先學習如何搭建嵌入式Linux的GDB
發表于 11-02 12:21
?15次下載
評論