您的位置:首页 > 其它

gdb define自定义用户命令

2016-01-29 23:25 274 查看
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都写在里面就行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: