GDB 指南

生成調(diào)試信息

一般地,只需要添加-g編譯器參數(shù)即可,如g++ -g -std=c++17 main.cpp -o prog

參數(shù) 說明
-g Produce debugging information in the operating system's native format (stabs, COFF, XCOFF, or DWARF).
-ggdb Produce debugging information for use by GDB.
-g1 Level 1 produces minimal information, enough for making backtraces in parts of the program that you don't plan to debug.
-g2 The default level is 2
-g3 Level 3 includes extra information, such as all the macro definitions present in the program.

GDB TUI (Text User Interface)

命令:gdb --tui
也可以使用gdb --tui --slient減少不必要的信息

關(guān)鍵命令

命令 短命令 說明
start 啟動程序并在main函數(shù)暫停
run r 啟動程序
next n 下一步
step s 進(jìn)入函數(shù)
up 跳出函數(shù)
break br or b 斷點(diǎn),可以指定行號br n或者函數(shù)名 br fun
continue c or fg 繼續(xù)運(yùn)行直到觸發(fā)斷點(diǎn)
info locals 查看本地變量
print p 打印變量print var
watch 監(jiān)控變量值的變化watch var
backtrace or where bt 打印調(diào)用棧
layout 切換源碼視圖layout src或者匯編視圖layout asm

附加到進(jìn)程

步驟:

  1. 通過ps -elf | grep program_nameps aux | grep program_name獲得進(jìn)程PID
  2. 使用命令sudo gdb attach pid or gdb --pid=pid or gdb -p pid

回退

在程序運(yùn)行后使用target record-full
需要時(shí)使用命令reverse-nextreverse-step 回退

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在gdb中鍵入help all可以看到所有g(shù)db-peda組件的命令。復(fù)制粘貼如下以備查: Command cla...
    飛熊先生閱讀 2,703評論 0 0
  • GDB快速指南 版本 2 (2009 6月 14) 原文 這是一個(gè)非常快速的GDB指南,旨在讓你開始在終端的命令行...
    Leon_Geo閱讀 1,071評論 0 2
  • gdb 的組成架構(gòu) gdb 基本工作原理 gdb 通過系統(tǒng)調(diào)用 ptrace 來接管一個(gè)進(jìn)程的執(zhí)行。ptrace ...
    與狼共舞666閱讀 2,082評論 0 3
  • GDB gdb調(diào)試中直接輸入回車是重復(fù)上一步命令 start:臨時(shí)斷點(diǎn)打在main函數(shù)處,等候進(jìn)一步指令 r(ru...
    廖少少閱讀 869評論 0 0
  • //聯(lián)系人:石虎QQ: 1224614774昵稱:嗡嘛呢叭咪哄 一、概念 英文版:詳細(xì)鏈接:點(diǎn)擊跳轉(zhuǎn)鏈接 Debu...
    石虎132閱讀 620評論 1 4

友情鏈接更多精彩內(nèi)容