gcc/g++ -g 添加调试信息
file filename 指定要调试的文件或者 gdb filename
run/r 运行程序
next/n 执行下一句(不跳转)
step/s 执行下一句(跳转)
continue/c 继续
list/l 打印debug处源码
l - 打印debug处上方的源码
l + 打印debug处下方的源码
回车重复上个命令
shell +command 使用shell命令
run>outfile 重定向输出
make和cd 可直接使用
break/b +/-num 在当前行+/-num处设断点
b filename:linenum 在filename文件的linenum行设断点
b filename:funcname 在对应函数起始位置设断点
b *address address为内存地址
break 在下一行停住
b <参数> if 在条件成立时停住
e.g. break if i==100 当i=100时停住
return 跳过当前函数无视断点
finish 跳过当前函数,但如果函数中有断点在断点处停止
until/u 跳出当前循环,如有断点在断点处停止
backtrace/bt [-n] 显示从栈底到n层内容
bt [n] 显示从栈顶到n层内容
point/p *array@len 显示数组内容,长度为len
p/a 按16进制显示
p/c 按字符形式显示
x/3i $pc 显示pc开始的3条指令
注意:(默认情况下Mac系统TUI mode是disable的。可以使用cgdb来替代 brew install cgdb
http://stackoverflow.com/questions/6612133/no-tui-support-for-gdb-on-mac)
layout src 仅显示源代码窗口。
layout asm 仅显示汇编代码窗口。
layout split 显示源代码和汇编代码窗口。
layout regs 显示寄存器和源代码窗口,或者寄存器和汇编代码窗口。
layout next` 和 `layout prev' 切换窗口。
Ctrl+ L 刷新屏幕。
Ctrl+x a 回到传统模式。