0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

linux編程GDB調(diào)試功能

汽車玩家 ? 來源:Hu先生Linux后臺開發(fā) ? 作者:Hu先生Linux后臺開發(fā) ? 2020-05-05 23:49 ? 次閱讀

GDB是一套字符界面的程序集,可以用它在linux上調(diào)試C和C++程序,它提供了以下的功能:

1 在程序中設(shè)置斷點,當程序運行到斷點處暫停

2 顯示變量的值,可以打印或者監(jiān)視某個變量,將某個變量的值顯示出來

3 單步執(zhí)行

4 運行時修改變量的值

5 跟蹤路徑

6 線程切換

等等

下面以以下程序為例

linux編程GDB調(diào)試功能

linux編程GDB調(diào)試功能

當我們要使用GDB進行程序的調(diào)試時,在用GCC編譯時需要加上-g,如下:

GDB之所以能夠進行程序的調(diào)試也是在于進行編譯時的-g選項,當設(shè)置了這個選項的時候,GCC會向程序中塞入一下信息,作為GDB調(diào)試時的鋪墊

,然后GDB才能夠利用這些鋪墊和信息與程序交互。

有兩種方式可以進入GDB,一種就是直接在命令行上輸入gdb,然后再在gdb中用file命令加載要調(diào)試的程序:

linux編程GDB調(diào)試功能

另一種就是,直接在命令行上使用:gdb 程序名

linux編程GDB調(diào)試功能

這兩種方法都是要在GDB中加載已經(jīng)做了鋪墊的將被調(diào)試的程序。

進行GDB并且加載了程序后,我們就可以進行一系列的調(diào)試操作了:

1 用 "set args 參數(shù)值1 參數(shù)值2...."來設(shè)置輸入?yún)?shù)

2用“l(fā)ist 開始的行號"來打印內(nèi)容

linux編程GDB調(diào)試功能

list 還可以選取區(qū)間來打印代碼:

linux編程GDB調(diào)試功能

3.用 ”b 位置"設(shè)置斷點

4.用 “run 參數(shù)”來運行程序

linux編程GDB調(diào)試功能

5.用"display 變量名“來顯示變量

6.用”c"來繼續(xù)運行程序

linux編程GDB調(diào)試功能

7.用set命令來改變變量的值

8用q命令來退出GDB

linux編程GDB調(diào)試功能

9 用p命令來打印變量的值

10 設(shè)置條件斷點

11 用delete刪除斷點

linux編程GDB調(diào)試功能

12 用info break 來顯示斷點信息

linux編程GDB調(diào)試功能

13.用bt來顯示函數(shù)調(diào)用路徑

linux編程GDB調(diào)試功能

14用whatis或者ptype來顯示變量的類型

linux編程GDB調(diào)試功能

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11209

    瀏覽量

    208721
  • gdb
    gdb
    +關(guān)注

    關(guān)注

    0

    文章

    60

    瀏覽量

    13268
收藏 人收藏

    評論

    相關(guān)推薦

    Linux應(yīng)用編程的基本概念

    Linux應(yīng)用編程涉及到在Linux環(huán)境下開發(fā)和運行應(yīng)用程序的一系列概念。以下是一些涵蓋Linux應(yīng)用編程的基本概念。
    的頭像 發(fā)表于 10-24 17:19 ?161次閱讀

    PLC遠程編程調(diào)試平臺是什么

    在快速發(fā)展的工業(yè)自動化領(lǐng)域,可編程邏輯控制器(PLC)作為核心控制設(shè)備,其穩(wěn)定運行對于生產(chǎn)效率和安全性至關(guān)重要。然而,隨著生產(chǎn)規(guī)模的不斷擴大和遠程管理的需求增加,傳統(tǒng)的現(xiàn)場編程調(diào)試模式已難以滿足高效
    的頭像 發(fā)表于 10-08 14:26 ?155次閱讀
    PLC遠程<b class='flag-5'>編程</b><b class='flag-5'>調(diào)試</b>平臺是什么

    使用VSCode調(diào)試嵌入式程序:如何切換gdb server

    上文小編給大家介紹了一下如何使用VSCode結(jié)合cortex-debug插件進行調(diào)試的方法。本篇就趁熱打鐵,進一步深入了解一下如何切換gdb server。讓我們可以不僅僅使用JLinkGDBServer進行調(diào)試。
    的頭像 發(fā)表于 05-09 11:02 ?1770次閱讀
    使用VSCode<b class='flag-5'>調(diào)試</b>嵌入式程序:如何切換<b class='flag-5'>gdb</b> server

    為什么VSCODE使用GDB調(diào)試不顯示寄存器?

    VSCODE使用GDB調(diào)試不顯示寄存器
    發(fā)表于 02-22 06:46

    arm三個寄存器在gdb調(diào)試時的作用

    arm三個寄存器在gdb調(diào)試時作用? ARM是一種廣泛使用的微處理器架構(gòu),它廣泛應(yīng)用于移動設(shè)備、嵌入式系統(tǒng)和其他高性能計算設(shè)備。當我們在使用gdb(GNU調(diào)試器)
    的頭像 發(fā)表于 01-31 10:44 ?860次閱讀

    如何使用linuxgdb調(diào)試python程序

    如何使用linuxgdb調(diào)試python程序? 在Linux下,可以使用GDB(GNU調(diào)試
    的頭像 發(fā)表于 01-31 10:41 ?2371次閱讀

    linuxgdb調(diào)試遇到函數(shù)調(diào)用怎么辦?

    linuxgdb調(diào)試遇到函數(shù)調(diào)用怎么辦? 在Linux上使用GDB調(diào)試時,遇到函數(shù)調(diào)用是一個常
    的頭像 發(fā)表于 01-31 10:33 ?669次閱讀

    簡述GDB調(diào)試器提供的基本功能

    GDB是一個功能強大的源代碼級調(diào)試工具,它提供了多種基本功能,幫助程序員** **更好地理解程序的運行機制和定位問題** **。
    的頭像 發(fā)表于 01-28 17:44 ?1201次閱讀

    TLT507-GDB程序調(diào)試方法說明

    TLT507-GDB程序調(diào)試方法說明
    的頭像 發(fā)表于 01-26 10:11 ?923次閱讀
    TLT507-<b class='flag-5'>GDB</b>程序<b class='flag-5'>調(diào)試</b>方法說明

    通過XMC Link使用XMC4200進行調(diào)試,為什么總是得到 “無法確定GDB版本”的提示?

    我正在嘗試通過 XMC Link 使用 XMC4200 進行調(diào)試。 但是發(fā)送后我總是得到 “&quot;無法確定 GDB 版本”:&quot;如下所示。 我根據(jù)論壇
    發(fā)表于 01-23 06:02

    RK3568-GDB程序調(diào)試方法說明

    RK3568-GDB程序調(diào)試方法說明
    的頭像 發(fā)表于 01-19 16:16 ?1691次閱讀
    RK3568-<b class='flag-5'>GDB</b>程序<b class='flag-5'>調(diào)試</b>方法說明

    gdb本地調(diào)試版本移植至ARM-Linux系統(tǒng)

    /ncurses-5.9.tar.gz1.將ncurses壓縮包拷貝至Linux主機或使用wget命令下載并解壓tar-zxvfncurses-5.9.tar.gz2.解壓后進入到ncurses-5.9
    的頭像 發(fā)表于 12-12 14:42 ?565次閱讀
    <b class='flag-5'>gdb</b>本地<b class='flag-5'>調(diào)試</b>版本移植至ARM-<b class='flag-5'>Linux</b>系統(tǒng)

    腳本調(diào)試工具有哪些?腳本調(diào)試工具怎么用?

    (GNU Debugger) GDB 是一個功能強大的命令行調(diào)試器,支持 C、C++、ADA 和其他一些編程語言。它可以幫助開發(fā)者在編譯后的程序中設(shè)置斷點、監(jiān)視變量和寄存器的值,以及執(zhí)
    的頭像 發(fā)表于 12-01 14:40 ?796次閱讀

    code blocks怎么調(diào)試

    Code::Blocks是一個功能強大的集成開發(fā)環(huán)境(IDE),主要用于C和C++編程。調(diào)試是開發(fā)過程中不可或缺的一部分,可以幫助開發(fā)人員找到代碼中的錯誤并進行修復(fù)。Code::Blocks提供了
    的頭像 發(fā)表于 11-26 10:26 ?2276次閱讀

    西門子標準化編程和虛擬調(diào)試應(yīng)用

    西門子標準化編程和虛擬調(diào)試應(yīng)用,西門子標準化編程、仿真與虛擬調(diào)試應(yīng)用培訓(xùn)PPT。
    發(fā)表于 11-16 14:58 ?488次閱讀
    西門子標準化<b class='flag-5'>編程</b>和虛擬<b class='flag-5'>調(diào)試</b>應(yīng)用