目录
releaseVSdebug模式
- 程序的发布方式有两种,debug模式和release模式
- Linux gcc/g++出来的二进制程序,默认是release模式
- Linux gcc/g++要使其debug模式编译,加上-g选项
- 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项
- debug模式:编译器形成可执行程序的时候,会给可执行程序添加调试信息!
- debug模式可以被调试
- release模式不可被调试
- 用户使用都是release版本,测试测得是release版本
【对比1】
【对比2】
readelf -S process.c-debug | grep -i debug
readelf -S process.c | grep -i debug
使用命令
sudo yum -y install gdb
//没安装gdb的小伙伴安装下
- 打断点(确定bug范围)
- 启用run到进入范围
- 启用next / step 逐过程/逐语句调试;step进入函数调试
- run / countinue:是重新和从当前位置开始调试
- finish是跳过函数停止(只执行函数)
- until X是结束循环调试
- 调试过程中查看变量信息
NO1运行
- gdb 可调式文件(含调试信息):开始启动调试。
- quit(q)/ ctrl+d :退出调试(结束调试)。
- run(r):运行程序。从开始连续而非单步执行程序。从头开始,有断点停下F5