当前位置: 首页 > news >正文

GDB的基本使用方法(之一)

1.编译程序

如果要让GDB调试程序,则编译生成程序时,要添加-g编译选项:

$gcc -Wall -O2 -g 源文件

编译器含有针对源代码中的各种各样的错误输出信息的功能,称为警告选项。这些信息并不一定是错误,但却指出了容易引发bug的编码方式。-Werror选项可以在警告发生时,将其当做错误来处理。

-O2是优化选项,编译程序时加上该选项,会产生2中副作用:

副作用一:实际的执行顺序可能由于优化而与源代码顺序不同,例如内敛函数优化,从目标文件中去掉了内敛函数的入口点,导致无法在内敛函数名上设置断点;

副作用二:局部变量被保存到寄存器中,因此无法显示局部变量的内容,必须直接查看寄存器的值。

既然有这些副作用,那为什么还要加上-O2的优化选项呢?因为如果不加上优化选项,那就必须管理有优化和无优化的两种可执行文件,因为有时候一个bug可能在未优化版本中存在,但是在优化版本中不存在,这样,管理成本会上升。所以,编译程序时还是加上优化选项。

2.GDB启动/附着程序

GDB启动程序命令如下:

sudo gdb 程序名

GDB附着程序命令如下:

sudo gdb attach 程序PID

3.设置/查看断点

GDB设置断点使用break命令,可以简写为b,其形式是:

break 断点

其中断点可以是函数名、文件行号等,具体的设置断点的格式有以下8种:

1.break 函数名

2.break 行号

3.break 文件


http://www.mrgr.cn/news/25152.html

相关文章:

  • linux驱动之模块化编程
  • 【数据结构】线性表的定义和基本操作
  • Tita的OKR:公司级 OKR 案例
  • 基于R语言结构方程模型分析与实践技术应用
  • Servlet(三)
  • 将独立的生成式AI系统整合为一个大脑
  • 从Apple Intelligence到IoT Intelligence,端侧生成式AI时代加速到来
  • python绘制3D瀑布图
  • 进程调度相关
  • windows.open使用
  • 低空经济 | 世界经济论坛:先进空中交通白皮书
  • JavaScript在网页设计中的应用案例
  • 图像拼接C++代码记录
  • Sqlserver常用sql
  • Python画笔案例-045 绘制渐变圆盘
  • Openpose
  • 语义分割数据集|河流湖泊分割|水灾预警
  • Acrel-7000企业能源管控平台通用设备“源荷” 联动
  • Python 常用的GIS库
  • C++当中的多态(二)