在Linux中使用gdb調(diào)試C程序的步驟如下:
編譯程序時(shí)添加調(diào)試信息。使用gcc編譯時(shí),添加 -g
參數(shù),例如:gcc -g program.c -o program
。
啟動(dòng)gdb。在終端中輸入 gdb program
,其中 program
是你要調(diào)試的程序的可執(zhí)行文件。
設(shè)置斷點(diǎn)??梢允褂?break
命令設(shè)置斷點(diǎn)。例如,break main
在 main
函數(shù)的第一行設(shè)置斷點(diǎn),或者使用 break filename:line_number
在指定行設(shè)置斷點(diǎn)。
運(yùn)行程序。使用 run
命令運(yùn)行程序。
當(dāng)程序停止在斷點(diǎn)處時(shí),可以使用 print
命令打印變量的值,使用 step
命令逐行執(zhí)行代碼,使用 continue
命令繼續(xù)執(zhí)行到下一個(gè)斷點(diǎn)。
當(dāng)程序發(fā)生崩潰或者遇到異常時(shí),gdb會(huì)自動(dòng)停止。此時(shí)可以使用 backtrace
命令查看函數(shù)調(diào)用棧,使用 frame
命令切換到不同的棧幀,使用 print
命令打印變量的值。
在調(diào)試過程中,還可以使用其他命令如 next
(逐過程執(zhí)行)、finish
(執(zhí)行完當(dāng)前函數(shù)并停在調(diào)用它的地方)、watch
(監(jiān)視變量)、display
(每次停下來都顯示變量的值)等。
結(jié)束調(diào)試,輸入 quit
命令退出gdb。
這些是gdb的基本用法,你可以參考gdb的文檔或者教程了解更多高級(jí)用法。