gdb命令

on under 二进制
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
gdb, commands, linux
home
github
archive
category