gdb define自定義使用者命令
阿新 • • 發佈:2019-02-02
gdb define命令,用於定義一系列的gdb指令,就相當於除錯的時候,用函式一樣。
基本語法:
define 名字
命令塊
end
命令可以接收最多10個引數,引數名為$arg0,$arg1,…,$arg9
一個簡單的例子:
(gdb) define add
Type commands for definition of "add".
End with a line saying just "end".
>p $arg0 + $arg1
>end
(gdb) add 1 2
$1 = 3
還可以用if/else語句:
(gdb) define add
>set $s = $arg0 + $arg1
>if $s > 10
>printf "%d>10\n",$s
>else
>printf "%d<=10\n",$s
>end
>end
(gdb) add 1 2
3<=10
寫好的命令可以放在檔案裡,然後gdb中用source命令引入。
如果source兩次相同的檔案,gdb會提示:
Redefine command "add"? (y or n) [answered Y; input not from terminal]
可以在檔案第一行寫一句:
set confirm off
來解決問題。
其實gdb在啟動時,會在當前使用者的主目錄中尋找一個名為 .gdbinit 的檔案,找到的話就執行裡面的所有命令。所以我們可以把自己常用的define都寫在裡面就行了。