一、背景
程序的发布方式有两种,debug模式和release模式
debug模式:编译器形成可执行程序的时候会给可执行程序添加调试信息
程序员调试时使用debug模式,而release模式用于测试
而gcc/g++默认编译,采用release模式
用gcc/g++使用debug模式编译, 加 -g
dubug模式下文件大小大于release模式下文件大小。
debug模式下会添加调试信息
二、gdb使用
基础 | ||
quit/q | 退出gdb | |
list/l | list/l filename:行号/函数名 l 行号/函数名 | 列举上下10行内容 |
Breakpoint/b | b 文件名:行号/函数名 b 行号/函数名 | 打断点 |
info/i | info/i b | 显示断点信息 |
delete/d | d 断点编号 | 删除断点 |
disable/enable | disable/enable 断点编号 | 使能(关闭/打开)断点 |
next/n | 逐过程 | |
step/s | 逐语句 | |
run/r | 编译 | |
print/p | print/p 变量/&变量 | 查看变量 内容/地址 |
display | display 变量/&变量 | 常显示变量 内容/地址 |
undisplay | undisplay 变量编号 | 取消常显示 |
高级 | ||
continue/c | 运行至下一格断点处 | |
finish | 把当前函数运行至结束 | |
until | until 行号 | 跳转至指定行,跳过代码都会执行 |
set var | 修改变量 | |
bt | 查看栈 |