<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用GDB調試工具

麥辣雞腿堡 ? 來源:CSDN博客 ? 作者:失了志的咸魚 ? 2023-11-09 17:17 ? 次閱讀

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 [線程號]#切換到指定線程
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 程序
    +關注

    關注

    114

    文章

    3640

    瀏覽量

    79719
  • 調試工具
    +關注

    關注

    1

    文章

    42

    瀏覽量

    12567
  • gdb
    gdb
    +關注

    關注

    0

    文章

    60

    瀏覽量

    13179
收藏 人收藏

    評論

    相關推薦

    請問如何建立開發環境

    如版主所寫,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 ?117次下載
    嵌入式Linux和嵌入式Linux開發環境

    gdb調試工具指南 (很詳細的說明)

    gdb調試工具指南,很詳細的說明。
    發表于 03-28 09:52 ?45次下載

    如何在VIM中對嵌入式軟件進行調試

    GNU免費提供了一整套工具鏈,為嵌入式Linux程序的開發和調試提供了完整的支持。其強大的gdb調試工具可以方便地對嵌入式平臺上的程序進行跟蹤調試
    發表于 06-30 10:39 ?1065次閱讀
    如何在VIM中對嵌入式軟件進行<b class='flag-5'>調試</b>

    初學GDB調試工具需要注意的事項

    GDB是一個由GNU開源組織發布的、UNIX/LINUX操作系統下的、基于命令行的、功能強大的程序調試工具。相比于VS里面的圖形化調試工具,其功能更加強大。
    發表于 05-16 17:45 ?990次閱讀
    初學<b class='flag-5'>GDB</b><b class='flag-5'>調試工具</b>需要注意的事項

    STM32CubeIDE乃ST官方提供的免費且功能強大的集成開發工具

    STM32CubeIDE乃ST官方提供的免費且功能強大的集成開發工具,令STM32Cube生態系統更為豐富強勁。它基于Eclipse/CDT框架、GCC編譯工具鏈和GDB調試工具,并支
    的頭像 發表于 03-31 15:26 ?5345次閱讀
    STM32CubeIDE乃ST官方提供的免費且功能強大的集成開發<b class='flag-5'>工具</b>

    Linux嵌入式 gdb VSCode圖形化調試教程

    linux 領域我們最常用的就是GDB 調試工具,通過GDB調試嵌入式C 程序。本章我們首先學習如何搭建嵌入式Linux的GDB
    發表于 11-02 12:21 ?15次下載
    Linux嵌入式 <b class='flag-5'>gdb</b> VSCode圖形化<b class='flag-5'>調試</b>教程

    riscv-binutils-gdb RISC-V版gdb調試工具

    riscv-binutils-gdb.zip
    發表于 04-25 10:23 ?0次下載
    riscv-binutils-<b class='flag-5'>gdb</b> RISC-V版<b class='flag-5'>gdb</b><b class='flag-5'>調試工具</b>

    嵌入式Linux GDB是什么

    GDB 調試工具,通過 GDB調試嵌入式 C 程序。 GDB 簡介 gdb
    的頭像 發表于 07-27 16:29 ?490次閱讀
    嵌入式Linux <b class='flag-5'>GDB</b>是什么

    GDB調試工具的原理

    一、GDB調試工具的原理 1.1 未執行進程調試 啟用gdb調試運行gdb ./test的時候,
    的頭像 發表于 11-09 17:04 ?401次閱讀
    <b class='flag-5'>GDB</b><b class='flag-5'>調試工具</b>的原理
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>