定义在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)
还有别的办法吗