linux中如何用gdb調(diào)試C程序

小億
115
2023-11-24 18:43:29

在Linux中使用gdb調(diào)試C程序的步驟如下:

  1. 編譯程序時(shí)添加調(diào)試信息。使用gcc編譯時(shí),添加 -g 參數(shù),例如:gcc -g program.c -o program。

  2. 啟動(dòng)gdb。在終端中輸入 gdb program,其中 program 是你要調(diào)試的程序的可執(zhí)行文件。

  3. 設(shè)置斷點(diǎn)??梢允褂?break 命令設(shè)置斷點(diǎn)。例如,break mainmain 函數(shù)的第一行設(shè)置斷點(diǎn),或者使用 break filename:line_number 在指定行設(shè)置斷點(diǎn)。

  4. 運(yùn)行程序。使用 run 命令運(yùn)行程序。

  5. 當(dāng)程序停止在斷點(diǎn)處時(shí),可以使用 print 命令打印變量的值,使用 step 命令逐行執(zhí)行代碼,使用 continue 命令繼續(xù)執(zhí)行到下一個(gè)斷點(diǎn)。

  6. 當(dāng)程序發(fā)生崩潰或者遇到異常時(shí),gdb會(huì)自動(dòng)停止。此時(shí)可以使用 backtrace 命令查看函數(shù)調(diào)用棧,使用 frame 命令切換到不同的棧幀,使用 print 命令打印變量的值。

  7. 在調(diào)試過程中,還可以使用其他命令如 next(逐過程執(zhí)行)、finish(執(zhí)行完當(dāng)前函數(shù)并停在調(diào)用它的地方)、watch(監(jiān)視變量)、display(每次停下來都顯示變量的值)等。

  8. 結(jié)束調(diào)試,輸入 quit 命令退出gdb。

這些是gdb的基本用法,你可以參考gdb的文檔或者教程了解更多高級(jí)用法。

0