gdb
文章目录
break 断点
- alias –> b
info b
- 断点详情
- break 3 (在第 3 行设置断点)
break functionName
- 在函数 functionName 处中断
- info breakpoints
diable/enable 1 (breakpoint number)
- 禁用/启用断点
删除断点
https://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_31.html
clear
clear filename clear filename:lineno
delete
https://stackoverflow.com/questions/4340718/how-do-i-remove-a-single-breakpoint-with-gdb
alias –> del
del [break no.]
list 源代码查看
- list 3 (以第 3 行为中心的上下 10 行内容)
list
- 向下继续列出 10 行代码
- 代码不足 10 行,列出剩余部份
执行过程中
- 将要执行的“代码”, 上下 10 行
run
- alias –> r
continue
- alias –> c
display 查看变量
- alias –> disp
disp arr
- 添加监控
- 把 arr 变量加入到监控的变量中
disp
- 显示监控的变量
disp var*3
- 可以进行运算
info disp
- 每一个监控的详情
- 其中表头“Enb” –> enable or not
next and step
next — alias –> n
- next 3 (向下执行 3 条语句)
- next (乡下执行 1 条语句)
遇到函数,不进入函数
- 把函数当成一个语句
step — alias –> s
- step 3
- step
- 遇到函数,进入函数
next <–> step
- 一个不进入,一个进入函数
finish
- 结束当前函数
watch
- 一直查看一个变量
- 只能在一个变量的作用域内,该命令才能生效
- watch var
与 display 命令区别
- 同时显示,旧值与新值
- watch 更适合查看一个变量的连续变化
- display 更适合看多个变量的变化
以一个 run 命令运行为作用域
- 下一次运行 run, 之前的 watch 失效
- 只查看变量一次
- print var
- print &var
- print *var
set
- 设置变量的值
用法
- set var name=value
- eg: set var time=11
backtrace
- alias –> bt
backtrace
- 查看 stack 堆栈信息
- 函数的调用信息
eg:
1 2#0 test () at hello.cpp:30 #1 0x0000000000400902 in main () at hello.cpp:18
frame
- alias –> f
- 选择 stack 中哪一层
frame 2
- 选择 stack 第二层(从 0 开始计数)
frame -2
- 选择倒数第二层
- 负号代表倒数
info frame
- 输出这一层的详细信息
eg:
1 2 3 4 5 6 7 8Stack level 1, frame at 0x7fffffffd690: rip = 0x400902 in main (hello.cpp:18); saved rip = 0x7ffff76ab830 caller of frame at 0x7fffffffd670 source language c++. Arglist at 0x7fffffffd680, args: Locals at 0x7fffffffd680, Previous frame's sp is 0x7fffffffd690 Saved registers: rbp at 0x7fffffffd680, rip at 0x7fffffffd688
down
- 向 stack 层数“小”的方向移动
down 2
- 移动两层
down
- 移动一层
up
- 向 stack 层数“大”的方向移动
down 2
- 移动两层
down
- 移动一层
down-silently
不输出多余信息
up-silently
info
- alias –> i
- 与其它命令一齐使用
- info –> information –> detail
info args
info locals
info catch
attach
- attach pid
- 用于调试运行中的软件 process id
文章作者
上次更新 2023-02-10 (97c415e)