Linux的两种版本
debug版本 调试版本 程序开发人员使用版本
链接:合并符号表,合并section调整段,大小和段起始位置
release版本 发行版本 提供给用户使用
gcc默认生成release版本
而gdb调试只能调试debug版本
因此我们须在编译过程中将信息添加到中间文件中
即:gcc -c main.c -g
gcc main.c -o debug
一步生成可执行文件:gcc main.c -o debug -g
gbd下的相关命令:
l / list 显示源代码
list filename:num
b line 给指定的行添加一个断点
b filename:line 给指定的文件的指定行添加断点
b fun 给指定的函数实现体
info b 显示断点信息
d bpnum 删除指定断点
r / run 启动调试
n / next 执行到下一行
p var 显示变量的值
display var 显示变量(每次用户执行都会将之前设定的显示的内容显示出来)
q 退出调试
s 进入函数运行
finish 退出函数
x 查看内存
x /nfu addr
n:显示数据的个数 4
f:显示数据的进制数
x 16 、d 10 、o 8 、t 2 、c 字符、f 浮点数
u:每个数字代表几个字节的数据
b 单字节 h 双字节 w 四字节 g八字节
bt 显示函数调用栈