gdb脚本命令语法简介
1. # 为脚本注释命令
2. 赋值语句:set, 变量以$开始,以便区分是gdb还是调试程序变量。
变量可为全局或局部,视声明位置。
例如:
set $x = 1;
3. 函数声明语句:define .. end 语句
define func
end
无行参声明,但可以直接用$arg1,$arg2引用, $argc 为形参个数
4. 显示语句: echo
5. 显示语句: printf
6. 条件语句: if..else..end
7. 循环语句: while .. end
8. 说明(帮助)语句: document.. end
为函数书写帮助说明
9. 常规的gdb 调试命令语句。
10. 支持shell 命令, 可以实现dump, search 等复杂功能
----------------------------------------
GDB 内存查找
Usage: find
------------------------------------
给一个简单的示例,其内置find 比这个功能强。
(gdb)
define find
set $ptr = $arg0
set $cnt = 0
while ( ($ptr<=$arg1) && ($cnt<$arg2) )
if ( *(unsigned int *)$ptr == $arg3 )
x /wx $ptr
set $cnt = $cnt + 1
end
set $ptr = $ptr + 4
end
end
注意:
gdb中使用的变量要加上'$'符号,否则会认为是被调试的程序中的变量
自定义的gdb命令脚本文件,可以用source 命令来导入。
由这几条简单语句已经勾勒出了脚本语言的概貌,可以与计算机交互了! 沟通愉快!
原文:https://blog.csdn.net/hejinjing_tom_com/article/details/50350865