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都写在里面就行了。