gdb define自定义用户命令

来源:互联网 发布:网络教育怎么上课 编辑:程序博客网 时间:2024/05/21 09:04

gdb define命令,用于定义一系列的gdb指令,就相当于调试的时候,用函数一样。
基本语法:

define 名字    命令块end

命令可以接收最多10个参数,参数名为$arg0,$arg1,…,$arg9
一个简单的例子:

(gdb) define addType 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 23<=10

写好的命令可以放在文件里,然后gdb中用source命令引入。
如果source两次相同的文件,gdb会提示:

Redefine command "add"? (y or n) [answered Y; input not from terminal]

可以在文件第一行写一句:

set confirm off

来解决问题。

其实gdb在启动时,会在当前用户的主目录中寻找一个名为 .gdbinit 的文件,找到的话就执行里面的所有命令。所以我们可以把自己常用的define都写在里面就行了。

0 0
原创粉丝点击