GDB命令
命令 | 效果 |
---|---|
开始和停止 | |
quit | 退出GDB |
run | 运行程序(在此给出命令行参数) |
kill | 停止程序 |
断点 | |
break multstore | 在函数multstore入口处设置断点 |
break * 0x400540 | 在地址0x400540处设置断点 |
delete 1 | 删除断点1 |
delete | 删除所有断点 |
执行 | |
stepi | 执行1条指令 |
stepi 4 | 执行4条指令 |
nexti | 类似于stepi, 但以函数调用作为单位 |
continue | 继续执行 |
finish | 运行到当前函数返回 |
检查代码 | |
disas | 反汇编当前函数 |
disas multstore | 反汇编函数multstore |
disas 0x400544 | 反汇编位于地址0x400544附近的函数 |
disas 0x40050,0x40054d | 反汇编指定地址范围内的代码 |
print /x $rip | 以十六进制输出程序计数器的值 |
检查数据 | |
print $rax | 以十进制输出%rax的内容 |
print /x $rax | 以十六进制输出%rax的内容 |
print /t $rax | 以二进制输出%rax的内容 |
print 0x100 | 输出0x100的十进制表示 |
print /x 555 | 输出555的十六进制表示 |
print /x ($rsp+8) | 以十六进制输出%rsp的内容加上8 |
print *(long *) 0x7ffffffffe818 | 输出位于地址0x7ffffffffe818的长整数 |
print *(long *) ($rsp+8) | 输出位于地址%rsp+8的长整数 |
x/2g 0x7ffffffffe818 | 检查从地址0x7ffffffffe818开始的双(8字节)字 |
x/20b multstore | 检查函数multstore的前20个字节 |
有用的信息 | |
info frame | 有关当前帧栈的信息 |
info registers | 所有寄存器的值 |
help | 获取有关GDB的信息 |