GDB
# 执行相关命令
directory <路径> 提供一个搜索源文件的目录
run <参数> 运行程序
attach <pid/进程名> 附加到进程
target remote <ip:port> 附加到远程gdb服务器
stepi 指令步进
nexti 指令步过
step 代码步进
next 代码步过
finish 代码步出
return <表达式> 立即返回
until <行号> 运行到行号或当前函数返回
# 查询相关命令
frame 查看当前栈帧及源码行数
bt 查看当前线程的栈追踪
bt full 查看当前栈帧的所有信息
bt <栈帧序号> 切换栈帧
info threads 查看线程
thread <pid> 切换线程
info args 查看参数
info locals 查看栈帧内局部变量
info registers 查看寄存器的值
p <变量名/$寄存器/地址> 查看变量/寄存器/地址的值
x <变量名> 以16进制查看变量值
disassemble 反汇编当前函数
disassemble <函数名/起始地址 结束地址> 反汇编指定函数或地址范围
info shared 查看可执行文件和所有的动态库
# 断点相关命令
break <函数/文件:行号/地址> 在指定位置下断点
clear <函数/文件:行号/地址> 清除指定位置的断点
delete <断点号> 删除断点
disable/enable <断点号> 禁用/启用断点
info break 查看所有断点
catch catch/throw 捕获捕获/抛出异常
# 杂项
set non-stop on 中断时只暂停当前线程, 其他线程继续运行
quit 退出gdb
IDA
TODO