set disassembly-flavor intel 设置为Intel编译格式
运行gdb
$ gdb - 运行,然后使用file命令加载对象
$ gdb -quiet (-q) - 禁止版权信息
$ gdb object - 正常调试
$ gdb object core - 分析核心转储
$ gdb object pid - 附加到正在运行的进程
一般命令
set args - 设置程序参数
show args - 显示程序参数
run - 运行程序
run < file - 从文件输入运行
set follow-exec-mode new/sam - 设置调试器响应一个EXEC调用
set write -设置写入可执行文件
set write off - 取消写入可执行文件
continue ( c ) -继续跑步直到休息
finish - 执行直到当前堆栈帧结束
source FILE -从脚本文件读取命令
shell [cmd] - 在shell中运行cmd
display /5i $eip -每次执行停止时显示表达式
undisplay <expr> - 不显示表达式编号
info functions - 列出所有的功能
info variables - 列出所有变量
info registers -列出最常见的寄存器
info all-registers - 列出所有寄存器
info display -打印显示的表达式列表
backtrace - 打印所有堆栈帧的回溯
where - 与回溯相同
define hook-[cmd] - 在命令之前执行的动作
define hooopost-[cmd] - 在命令后执行的动作
define hook-stop -执行停止时要执行的动作
Breakpoints
info breakpoints (br) - 列出所有断点
break [func] (b xxx) - 断点设在函数名称入口处
break *[addr] - 在地址中断
delete [bnum] - 通过断点编号删除断点
break if [cond] - 设置条件中断
ignore [bnum] [count] - 忽略断点bnum计数次数
condition [bnum] $eax == 0x22 -为断点1添加条件中断
condition [bnum] - 删除断点1的条件
Watchpoints
info watchpoints - 列出所有观察点
watch variable==value - 当变量等于时中断
watch $eax == 0x0000ffaa -当寄存器值满足条件中断
rwatch *[addr] - 读取内存位置中断
awatch *[addr] - 读/写内存位置中断