GCC(GNU Compiler Collection)是一個用于編譯C、C++、Objective-C、Fortran、Ada等編程語言的編譯器套件。在使用GCC進行調試時,通常會結合使用gcc或g++編譯器以及gdb調試器。以下是一些基本的GCC調試命令和步驟:
在編譯程序時,需要添加-g選項來生成調試信息。例如:
gcc -g -o myprogram myprogram.c
或者對于C++程序:
g++ -g -o myprogram myprogram.cpp
使用gdb命令啟動調試器,并指定要調試的可執行文件:
gdb myprogram
以下是一些常用的GDB命令:
list 或 l:顯示源代碼。break 或 b:設置斷點。例如,break main 在main函數處設置斷點。run 或 r:啟動程序。continue 或 c:繼續執行程序,直到遇到下一個斷點或程序結束。next 或 n:單步執行,不進入函數內部。step 或 s:單步執行,進入函數內部。finish:執行完當前函數并返回到調用處。print 或 p:打印變量的值。例如,print x 打印變量x的值。backtrace 或 bt:顯示當前的調用棧。info locals:顯示當前函數的局部變量。info args:顯示當前函數的參數。quit 或 q:退出GDB。以下是一個簡單的調試會話示例:
$ gdb myprogram
GNU gdb (GDB) 10.1
...
(gdb) break main
Breakpoint 1 at 0x401136: file myprogram.c, line 5.
(gdb) run
Starting program: /path/to/myprogram
Breakpoint 1, main () at myprogram.c:5
5 int x = 10;
(gdb) next
6 printf("Hello, World!\n");
(gdb) print x
$1 = 10
(gdb) continue
Continuing.
Hello, World!
[Inferior 1 (process 1234) exited normally]
-x filename:從文件中讀取GDB命令。-tui:啟用文本用戶界面(TUI)模式,可以在終端中同時顯示源代碼和調試信息。通過這些基本步驟和命令,你可以有效地使用GCC和GDB進行程序調試。