gdb命令
1 minute read
0x0 gdb常用命令
gdb
help
help data
help stack
help status
gdb stack0 #===>gdb + file stack0
l(list) #show source
b 7(break 7) #add break on line7
b 8(break 8) #add break on line8
b 11
b 13
b 15
info b(info break)
info registers #show registers
r(run) #第一次运行或重新开始运行程序
gdb|file tarelf|start#会自动在开始处下断点
continue #继续运行
disas /m
/r #show hex(显示汇编指令对应十六进制值)
/m #show source if available(如果有源码,显示对应行源码)
set disassembly-flavor att/intel #设置att或intel格式
set disassemble-next-line #设置下一步是否显示汇编码
si或s(setpi) #==> step into,like f7 in od
ni或n(nexti) #==> like f8 in od
leave #立即中断当前函数运行并返回,当前函数的剩余语句将不被执行
finish #执行到当前函数返回之后停止,当前函数的剩余语句将正常运行
bt(backtrace) #查看所有栈帧信息
f num(frame num) #选择并打印第num个栈帧信息
info f(info frame) #查看当前栈帧信息
layout:用于分割窗口,可以一边查看代码,一边测试:
layout src:显示源代码窗口
layout asm:显示反汇编窗口
layout regs:显示源代码/反汇编和CPU寄存器窗口
layout split:显示源代码和反汇编窗口
Ctrl + L:刷新窗口
b classname::functionname #在类函数上设置断点
0x1 gdb技巧
(gdb) set logging on # collect trace in gdb.txt
(gdb) set confirm off # you wouldn't want to confirm every one of them
(gdb) rbreak . # set a breakpoint on each function