hp window11 wsl + ubuntu
what is gdb?
GNU調試器(英語:GNU Debugger,縮寫:GDB),是GNU軟件系統中的標準調試器,此外GDB也是個具有移攜性的調試器,經過移攜需求的調修與重新編譯,如今許多的類UNIX操作系統上都可以使用GDB,而現有GDB所能支持調試的編程語言有C、C++、Pascal以及FORTRAN。
檢查本地已安裝:
how to use gdb?
用vim寫了一個c文件hello.c
#include<stdio.h>int main()
{int i = 0;printf("hello,world");printf("i is %d\n",i);i++ ;printf("i is now %d\n",i);return 0;
}
使用cat命令查看hello.c的內容
使用gcc編譯用于dubug的文件hello.c,會默認生成名為a.out的執行文件
gcc -g hello.C
gcc: The GNU Compiler Collection command for compiling C programs.
-g: This flag tells GCC to include debugging symbols (useful for tools like gdb).
hello.c: The source file to be compiled.
By default, this command generates an executable named a.out on Linux
gdb a.out
看到(gdb)字說明可以使用gdb命令了
使用gdb的start命令,開始dubeg ,停留在main函數體處。
而list可以在gdb里面列出正在操作的文件內容。
然后按下Ctrl + X + A開啟TUI模式,就是下面這個好看的視圖,當然關閉也是此快捷鍵。
使用next,可以對程序進行單步跟蹤,由原來的第4行走到原來的第5行。
還可以使用layout split可以看到源碼和相對應的匯編。當然這里只是拋磚引玉,使用了gdb中的一部分命令進行演示,常用gdb命令放到文章末尾了,可以慢慢把玩。
最后按下quit(簡稱q)退出,按下y確認退出gdb調試。體驗就此完畢,怎么說呢,之前對gdb比較神秘,現在也算是微微打開了它的神秘面紗。
Here are some commonly used GDB (GNU Debugger) commandsclick me
視圖切換:
快捷鍵 功能說明
Ctrl + X + S 顯示 源碼視圖(等效 layout src)
Ctrl + X + A 顯示 匯編視圖(等效 layout asm)
Ctrl + X + R 顯示 寄存器視圖(等效 layout regs)
Ctrl + X + F 顯示 函數調用棧視圖(等效 layout split,混合源碼+匯編)