天津门户网站建设,如何生成网站,网站地址是什么,做pc端网站多少钱1. 目的
2. 基于 GDB 的汇编级单步调试
原始代码
#include stdio.hlong test()
{long a 1;a 2;return a;
}int main()
{int ret test();printf(test return %d\n, ret);return 0;
}关键 gdb 命令
si 指令执行汇编级的单步调试info registers 读取寄…1. 目的
2. 基于 GDB 的汇编级单步调试
原始代码
#include stdio.hlong test()
{long a 1;a 2;return a;
}int main()
{int ret test();printf(test return %d\n, ret);return 0;
}关键 gdb 命令
si 指令执行汇编级的单步调试info registers 读取寄存器值push rbp 会将 rbp 值存放在 rsp 下方 然后让 rsp 寄存器的值减8x 命令 查看内存
配置 gdb
~/.gdbinit
set disassembly-flavor intel
set breakpoint pending on
set history save # 退出 gdb 后直接在当前目录下的 .gdb_history 中看到命令记录
set verbose off
set print pretty on
set print array off
set print array-indexes off
set disable-randomization onset target-async 1
set pagination off
set non-stop ongdb 完整命令
通过 gdb 单步调试汇编指令可以验证 rsp 的取值变化
g test3.cpp
gdb ./a.outb main
r
disassemble
si
si
disassemble
si
disassemble
info registers rsp rbp
si
disassemble
info registers rsp rbp
x /1xg $rsp
q3. 基于 LLDB
4. 基于 Visual Studio
5. 基于 WinDBG