GDB一些命令的簡單介紹

2021-06-16 15:56:38 字數 2033 閱讀 5549

gdb是gnu開源組織發布的乙個強大的unix下的程式除錯工具。

1. 主要功能:

跟斷點相關的point主要有三種:

斷點:通知gdb在程式中的特定位置暫停執行

監視點:通知gdb當特定記憶體的值發生變化時暫停執行

捕獲點:通知gdb當特定事件發生時暫停執行

其中斷點(breakpoint)和監視點(watchpoint)是需要使用者手動加的,捕獲點是gdb根據加的斷點或是監視點去捕獲的。

2.1 如何加斷點

break ——在當前檔案的當前位置加斷點

break line_num ——在當前檔案的第line_num行加斷點

break filename:line_num ——在指定的檔案filename中的第line_num行加斷點

break function_name ——在函式function_nam的位置上加斷點

break filename:function_name ——在指定的檔案filename中的函式function_name加斷點

檢視斷點資訊:

info break

2.2 其他型別的斷點

2.2.1 條件斷點:滿足某個條件程式才會暫停執行

有兩種方式加條件斷點:

break 10

condition 1 i==20

等價於 

break 10 if i==20

2.2.2 臨時斷點:斷點最多只能**獲一次

加臨時斷點的命令是tbreak,命令格式和break一樣。

2.3 失效或刪除斷點

2.3.1 生、失效斷點

失效命令是disable,具體格式:

disable ——表示使所有的斷點失效

disable  breakpoint_list ——表示使指定的斷點失效

生效命令是enable,具體格式:

enable ——表示使所有的斷點生效

enable breakpoint_list ——表示使指定的斷點失效

2.3.2 刪除斷點

刪除斷點有兩個命令,delete和clear,具體格式如下:

delete:

delete ——表示刪除斷點

delete breakpoint_list ——表示刪除指定的斷點

clear:

clear ——刪除將執行的下乙個指令處的斷點

clear line_num /function_name ——刪除指定位置的斷點

2.4 恢復斷點

總共以下幾種:

單步執行:可以用next或是step命令,具體區別可以查一下;

使用continue恢復程式執行;

使用finish恢復程式執行:直接將當前函式執行到返回為止;

使用until恢復程式的執行:與for迴圈相關,直接執行完for迴圈

2.5 斷點程式設計

斷點命令列表:

commands breakpoint_num

>print n

>…

>end

定義乙個命令:

define cmd_name

>…

>end

2.6 監視點:監視點可以監視某段記憶體的情況

具體命令格式為:

watch i ——當i的值有變動的時候,程式會暫停執行

watch (i>10) ——當i的值大於10的時候,程式會暫停執行

3. 檢查和設定變數

print var_name ——列印變數var_name,檢視該變數的值

set var_name ——設定變數var_name的值

display var_name ——在斷點處顯示變數var_name的值

剛才忘了說這2個命令,有興趣的可以看下

info reg——檢視當執行緒的暫存器資訊

disassemble function_name——檢視某函式的彙編實現

以上是一些gdb除錯的簡單命令,如果需要用gdb除錯core檔案,或是多執行緒,請參看下面兩篇部落格:

gdb除錯core檔案

gdb除錯多執行緒程式

初識gdb 一些命令

目前在解第5個bomb,共有6個bomb和1個隱藏的bomb,6個都解完了發一篇上來.解的時候工具是gdb和objdump.objdump objdump d bomb bomb dump gdb gdb bomb gdb b 0x08048d52 在0x08048d52設定斷點 注意前面要有 gd...

一些常用的gdb命令

在ns3中,在命令列中輸入下面的命令,進入gdb除錯模式。waf run mytest command template gdb s 命令作用l 列出當前語句上下幾行的 相當於list 直接回車 重複上一次的命令 break test.cc 16 設定斷點,在test.cc檔案的第16行 break...

一些簡單的命令

1 壓縮 gzip test.txt 結果 test.txt.gz 解壓 gunzip test.txt.gz 結果test.txt 壓縮 bzip2 k 檔名稱 2 建立目錄 mkdir 3 建立檔案 vi 檔名稱 或 vim 檔名稱 或 touch 4 檢視檔案 vim 檔名稱 5 複製 cp ...