前 言
本指導文檔適用開發環境:
Windows開發環境:Windows 7 64bit、Windows 10 64bit
虛擬機:VMware15.5.5
Linux開發環境:Ubuntu18.04.464bit
U-Boot:U-Boot-2018.07
Kernel:Linux-5.4.61、Linux-RT-5.4.61
LinuxSDK:T113_Tina5.0-V1.0(Linux)
GDB工具是GNU項目調試器,基于命令行使用。和其他的調試器一樣,可使用GDB工具單步運行程序、單步執行、跳入/跳出函數、設置斷點、查看變量等等,它是UNIX/LINUX操作系統下強大的程序調試工具。GDB支持多種語言,包括Ada、匯編、C/C++、D、Fortran、GO、Objective-C、OpenCL、Modula-2、Pascal和Rust。
GDB具有一種“遠程”模式,此種模式多半是在為嵌入式系統進行調試時使用,遠程操作指的是:GDB在一部機器內運行,而要進行調試的程序是在另一部機器上運行,支持TCP/IP協議傳輸的各種網絡,在TCP/IP網絡及協議上再加搭傳輸GDB專有的調試操作通信協議,如此便能進行遠程調試。
演示程序創建與編譯
在Ubuntu工作目錄下執行如下命令,新建一個GDB調試演示程序。
Host# mkdir test
Host# cd test/
Host# vitest.c
圖 1
#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;
}
執行如下命令,進行程序編譯,編譯完成將會生成test可執行程序。
備注:編譯時需添加-g參數,生成的可執行文件才帶有調試信息。若使用eMMC配置評估板,請將命令中的"tlt113-evm-nand"修改為"tlt113-evm-emmc"。
Host# /home/tronlong/T113/tina5.0_v1.0/out/t113_i/tlt113-evm-nand/buildroot/buildroot/host/usr/bin/arm-linux-gnueabi-gcc -g test.c -o test
圖 2
評估板與PC機連接至同一個路由器后進行上電,將編譯生成的可執行文件test拷貝至評估板文件系統任意目錄下。
Target# ls
圖 3
調試程序運行
執行如下命令,查看虛擬機的IP地址。
Host# ifconfig
圖 4
在評估板文件系統test文件所在路徑,執行如下命令運行gdbserver程序,開啟監聽。
備注:192.168.1.51為Ubuntu的IP地址;1234為連接的端口號(自行設置);test為將要進行調試的程序。
Target# gdbserver 192.168.1.51:1234 test
圖 5
在虛擬機test文件所在路徑下,執行如下命令運行GDB調試程序。
備注:若使用eMMC配置評估板,請將命令中的"tlt113-evm-nand"修改為"tlt113-evm-emmc"。
Host# /home/tronlong/T113/tina5.0_v1.0/out/t113_i/tlt113-evm-nand/buildroot/buildroot/host/usr/bin/arm-linux-gnueabi-gdb test
圖 6
執行如下命令,連接評估板。192.168.0.211為評估板的IP地址,請以實際情況為準。
(gdb) target remote 192.168.0.211:1234
圖 7
同時,串口調試終端顯示連接成功的相關信息。
圖 8
程序調試
本章節主要演示GDB調試的幾個常用命令的使用方法。
list命令
用于列出源碼,簡寫:l。
圖 9
break命令
用于設置斷點,簡寫:b。
分別在main函數和第13行設置斷點。
圖 10
info breakpoints命令
用于顯示斷點的狀態,簡寫:infob。
圖 11
continue命令
用于恢復程序執行,簡寫:c。此命令使GDB恢復程序的執行,直至斷點觸發或程序結束。
圖 12
以上調試過程在第二個斷點中,每輸入一次c命令,將會依次打印arr[]數組的元素值,然后程序執行結束。同時,串口調試終端打印相關信息。
圖 13
print命令
用于打印變量或者變量地址,簡寫:p。
設置斷點后,可依次打印當前變量i的值。
圖 14
以上調試過程在每處斷點中,使用print命令打印變量i的值。同時,串口調試終端打印相關信息。
圖 15
quit命令
退出GDB模式,簡寫:q。當程序調試完成后,使用quit命令退出GDB調試。
圖 16
同時,串口調試終端打印相關信息。
圖 17
審核編輯 黃宇
-
開發板
+關注
關注
26文章
6289瀏覽量
118043 -
gdb
+關注
關注
0文章
61瀏覽量
13883
發布評論請先 登錄
國產!全志T113-i 雙核Cortex-A7@1.2GHz 工業開發板—eMMC配置核心板使用說明(二)
國產!全志T113-i 雙核Cortex-A7@1.2GHz 工業開發板—Linux系統使用手冊(三)
國產!全志T113-i 雙核Cortex-A7@1.2GHz 工業開發板—Linux系統使用手冊(二)
國產!全志T113-i 雙核Cortex-A7@1.2GHz 工業開發板—ARM + DSP、RISC-V核間通信開發案例
國產!全志T113-i 雙核Cortex-A7@1.2GHz 工業開發板—RISC-V案例開發手冊(上)
國產!全志T113-i 雙核Cortex-A7@1.2GHz 工業開發板—DSP案例開發手冊
國產!全志T113-i 雙核Cortex-A7@1.2GHz 工業開發板—GDB程序調試方法說明
評論