定义在gdb中的断点处打印内容的函数
我知道当断点触发时,定义在gdb中的断点处打印内容的函数,gdb,Gdb,我知道当断点触发时,b和command可以打印东西。但是在我的程序中,有很多memcpy,当代码到达那里时,我需要打印目标长度和源地址,它们是寄存器$r2和$r1 memcpys位于: $my_module_base+0xaaa $my_module_base+0xbbb ... 我试图编写一个函数,将$my\u module\u base作为参数,并自动设置这些断点 define set_all_bp set $module_base=$arg0 b *$module_ba
b
和command
可以打印东西。但是在我的程序中,有很多memcpy
,当代码到达那里时,我需要打印目标长度
和源地址
,它们是寄存器$r2
和$r1
memcpy
s位于:
$my_module_base+0xaaa
$my_module_base+0xbbb
...
我试图编写一个函数,将$my\u module\u base
作为参数,并自动设置这些断点
define set_all_bp
set $module_base=$arg0
b *$module_base+0xaaa
command
echo Here is memcpy 1:\n
my_dump $r1 $r2
end
b *$module_base+0xbbb
command
echo Here is memcpy 2:\n
my_dump $r1 $r2
end
end
但它不起作用,gdb说:
(gdb) source my_script
bp:8: Error in sourced command file:
This command cannot be used at the top level.
(gdb)
还有别的办法吗