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

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

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

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

Tronlong創(chuàng)龍科技 ? 來源:Tronlong創(chuàng)龍科技 ? 作者:Tronlong創(chuàng)龍科技 ? 2024-01-26 10:11 ? 次閱讀

1 演示程序創(chuàng)建與編譯

在 Ubuntu 工作目錄下執(zhí)行如下命令,新建一個(gè) GDB 調(diào)試演示程序。

Host# mkdir demo

Host# cd demo/

Host# vi demo.c

wKgZomW4TM6AVbMYAACNpGdUnX4262.png

#include

void show() {

printf("shown");

}

int main(int argc, char *argv[])

{

int arr[4] = {1, 2, 3, 4};

int i = 0;

for (i = 0; i < 4; i++) {

printf("arr[%d]: %dn", i, arr[i]);

}

show();

return 0;

}

執(zhí)行如下命令,進(jìn)行程序編譯,編譯完成將會(huì)生成 demo 可執(zhí)行程序。

備注:編譯時(shí)需添加-g 參數(shù),生成的可執(zhí)行文件才帶有調(diào)試信息。

Host# export PATH=/home/tronlong/T507/LinuxSDK/out/t507/tlt507-evm/longan/buildro

ot/host/bin:$PATH

Host# aarch64-linux-gnu-gcc -g demo.c -o demo

wKgaomW4TO6ACIFvAABQsG2DKAo909.png

評(píng)估板與 PC 機(jī)連接至同一個(gè)路由器后進(jìn)行上電,將編譯后的可執(zhí)行文件 demo 拷貝

至評(píng)估板文件系統(tǒng)任意目錄下。

Target#

ls

wKgZomW4TPOAYlSvAAAQn4AFhLI438.png

2 調(diào)試程序運(yùn)行

執(zhí)行如下命令,查看虛擬機(jī)的 IP 地址。

Host# ifconfi

wKgZomW4TQuAR0cRAACmYvPJpRE597.png

在評(píng)估板文件系統(tǒng) demo 文件所在路徑下,執(zhí)行如下命令運(yùn)行 gdbserver 程序,開啟

監(jiān)聽。

備注:192.168.13.11 為虛擬機(jī)的 IP 地址;1234 為連接的端口號(hào)(自行設(shè)置);demo 為

將要進(jìn)行調(diào)試的程序。

Target#

gdbserver 192.168.13.11:1234 demo

wKgZomW4TSOASuDsAAAg_CCa2EU120.png

在虛擬機(jī) demo 文件所在路徑下,執(zhí)行如下命令運(yùn)行 GDB 調(diào)試程序。

Host# aarch64-linux-gnu-gdb demo

wKgZomW4TSmAfxnzAADPLE94amo256.png

執(zhí)行如下命令,連接評(píng)估板。192.168.13.66 為評(píng)估板的 IP 地址,請(qǐng)以實(shí)際情況為準(zhǔn)。

(gdb)

target remote 192.168.13.66:1234

wKgaomW4Ta6ASy4GAABr3cGlMUM859.png

同時(shí),串口調(diào)試終端顯示連接成功的相關(guān)信息。

wKgaomW4Tb2ADvbHAAArVwk99dI086.png

3 程序調(diào)試

本章節(jié)主要演示 GDB 調(diào)試的幾個(gè)常用命令的使用方法。

3.1 list 命令

用于列出源碼,簡寫:l。

wKgZomW4TcSAOE-XAAA4wu97lNI728.png

3.2 break 命令

用于設(shè)置斷點(diǎn),簡寫:b。

分別在 main 函數(shù)和第 11 行設(shè)置斷點(diǎn)。

wKgaomW4TcyAc7zXAAAgzf-Bx9w262.png

3.3 info breakpoints 命令

用于顯示斷點(diǎn)的狀態(tài),簡寫:info b。

wKgZomW4TeWACC-GAAAptHD3tnc524.png

3.4 continue 命令

用于恢復(fù)程序執(zhí)行,簡寫:c。此命令使 GDB 恢復(fù)程序的執(zhí)行,直至斷點(diǎn)觸發(fā)或程序

結(jié)束。

wKgaomW4TeuALu-8AADX6RYM6l8991.png

以上調(diào)試過程在第二個(gè)斷點(diǎn)中,每輸入一次 c 命令,將會(huì)依次打印 arr[]數(shù)組的元素值,

然后程序執(zhí)行結(jié)束。同時(shí),串口調(diào)試終端打印相關(guān)信息。

wKgaomW4Tg6ANg34AAA7uIWUYlI800.png

3.5 print 命令

用于打印變量或者變量地址,簡寫:p。

設(shè)置斷點(diǎn)后,可依次打印當(dāng)前變量 i 的值。

wKgaomW4TheAdCJ2AAD-jcIPRQ4894.png

以上調(diào)試過程在每處斷點(diǎn)中,使用 print 命令打印變量 i 的值。同時(shí),串口調(diào)試終端

打印相關(guān)信息。

wKgaomW4TiuAZ_MpAAA6VmnytD0335.png

3.6 quit 命令

退出 GDB 模式,簡寫:q。當(dāng)程序調(diào)試完成后,使用 quit 命令退出 GDB 調(diào)試。

wKgZomW4TjGAApr8AAAetKL0gIU718.png



審核編輯 黃宇

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

    關(guān)注

    0

    文章

    60

    瀏覽量

    13551
  • 程序調(diào)試
    +關(guān)注

    關(guān)注

    6

    文章

    14

    瀏覽量

    9862
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    使用GDB調(diào)試Linux應(yīng)用程序

    本篇講解使用GDB調(diào)試Linux應(yīng)用程序,以下以 `hellowld.c` 為例介紹 GDB調(diào)試入門。
    發(fā)表于 06-27 15:48 ?571次閱讀

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

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

    TLT507-Linux應(yīng)用開發(fā)手冊

    TLT507-Linux應(yīng)用開發(fā)手冊
    的頭像 發(fā)表于 01-26 09:34 ?871次閱讀
    <b class='flag-5'>TLT507</b>-Linux應(yīng)用開發(fā)手冊

    TLT507-Qt工程編譯說明

    TLT507-Qt工程編譯說明
    的頭像 發(fā)表于 01-26 09:37 ?1606次閱讀
    <b class='flag-5'>TLT507</b>-Qt工程編譯<b class='flag-5'>說明</b>

    TLT507-Linux-RT應(yīng)用開發(fā)案例

    TLT507-Linux-RT應(yīng)用開發(fā)案例
    的頭像 發(fā)表于 01-26 09:46 ?916次閱讀
    <b class='flag-5'>TLT507</b>-Linux-RT應(yīng)用開發(fā)案例

    TLT507-Docker容器部署方法說明

    TLT507-Docker容器部署方法說明
    的頭像 發(fā)表于 01-26 09:49 ?649次閱讀
    <b class='flag-5'>TLT507</b>-Docker容器部署<b class='flag-5'>方法</b><b class='flag-5'>說明</b>

    TLT507-Ubuntu系統(tǒng)使用說明

    TLT507-Ubuntu系統(tǒng)使用說明
    的頭像 發(fā)表于 01-26 09:58 ?1256次閱讀
    <b class='flag-5'>TLT507</b>-Ubuntu系統(tǒng)使用<b class='flag-5'>說明</b>

    TLT507-物聯(lián)網(wǎng)模塊開發(fā)案例

    TLT507-物聯(lián)網(wǎng)模塊開發(fā)案例
    的頭像 發(fā)表于 01-26 10:26 ?1071次閱讀
    <b class='flag-5'>TLT507</b>-物聯(lián)網(wǎng)模塊開發(fā)案例

    TLT507-視頻開發(fā)案例

    TLT507-視頻開發(fā)案例
    的頭像 發(fā)表于 01-26 10:50 ?1160次閱讀
    <b class='flag-5'>TLT507</b>-視頻開發(fā)案例

    TLT507-ARM + FPGA通信案例

    TLT507-ARM + FPGA通信案例
    的頭像 發(fā)表于 01-26 11:05 ?1321次閱讀
    <b class='flag-5'>TLT507</b>-ARM + FPGA通信案例

    TLT507-多通道AD采集開發(fā)案例

    TLT507-多通道AD采集開發(fā)案例
    的頭像 發(fā)表于 01-26 11:28 ?1283次閱讀
    <b class='flag-5'>TLT507</b>-多通道AD采集開發(fā)案例

    TLT507-Android操作系統(tǒng)演示案例

    TLT507-Android操作系統(tǒng)演示案例
    的頭像 發(fā)表于 01-26 14:57 ?1379次閱讀
    <b class='flag-5'>TLT507</b>-Android操作系統(tǒng)演示案例

    TLT507-Android應(yīng)用開發(fā)手冊

    TLT507-Android應(yīng)用開發(fā)手冊
    的頭像 發(fā)表于 01-26 15:32 ?730次閱讀
    <b class='flag-5'>TLT507</b>-Android應(yīng)用開發(fā)手冊

    TLT507-Android開發(fā)環(huán)境搭建

    TLT507-Android開發(fā)環(huán)境搭建
    的頭像 發(fā)表于 01-26 17:03 ?786次閱讀
    <b class='flag-5'>TLT507</b>-Android開發(fā)環(huán)境搭建

    如何使用linux下gdb調(diào)試python程序

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

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品