欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > GDB的基本使用方法(之一)

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

2025/5/1 18:29:45 来源:https://blog.csdn.net/liuyangwuhan1980/article/details/142170884  浏览:    关键词: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 文件

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词