Linux下的的GDB调试技巧三 —— 启动调试与启动程序
2023-09-14 09:15:40 时间
启动调试
- 先进入gdb,然后通过file命令进入调试
示例如下:
$ gdb
(gdb) file program_a
- 直接进入调试
示例如下:
$ gdb program_a
直接进入调试又分为以下两种:
- 调试启动无参程序
示例如下:
$ gdb program_a
- 调试启动有参程序
(1)通过命令输入参数
示例如下:
$ gdb --args program_b src_path out_path
(2)通过无参程序方式启动,在进入gdb的控制界面之后再设置程序的参数
示例如下:
$ gdb program_b
(gdb) set args src_path out_path
- 附加到进程
很多情况下,程序出现问题时并不处于调试状态。也就是说,在我们想要调试程序时,程序
已经开始运行。这时,需要通过将gdb附加到进程的方式启动程序,语法如下:
gdb attach <pid>
或
gdb program <pid>
启动程序
启动程序的命令为“run”或者”r”,一般用于调试一个程序。r命令只在使用gdb启动被调试的程序时执行一次。如前例“通过无参程序方式启动”中,运行gdb program_b之后,进入到gdb的调试窗口。此时程序还未启动,可以执行设置启动参数、环境变量、断点等操作。设置完成之后,在gdb中输入run命令启动程序,程序会运行,直到遇到第一个命中的断点为止,程序在断点处会停下来。
另一个启动程序的命令是“start”,与run不同的是,start命令会在程序入口函数main停下来,start 作用等价于run+b main。如果需要在所加载的动态库中设置断点,通过start会很方便,因为 这时动态库及符号已经加载完成,通过tab就可以列举所有相关函数。
相关文章
- Linux串口驱动移植实践(linux串口驱动移植)
- 探索Linux之旅:灵活的系统路径(linux系统路径)
- Linux查看网卡型号的简单方法(查看网卡型号linux)
- 软件Linux快速安装软件——一键搞定(linux一键安装)
- Linux无法检测到硬盘(linux找不到硬盘)
- 深入Linux:查看启动的程序(linux查看启动的程序)
- Linux程序的路径之旅(linux程序所在目录)
- 嵌入式Linux系统:研究与引导程序(嵌入式linux引导程序)
- 调试技术解锁Linux下IDA调试之路(linux下ida)
- 实现 Linux 下设备文件的创建(linux创建设备文件)
- Linux 下编译模块实战指南(linux编译模块)
- Linux 文件系统完整性检查(linux检查文件系统)
- 程序Linux环境下的寄存器驱动程序实现(linux寄存器驱动)
- Linux的优势:安全、可靠与可扩展(有的linux)
- 让Linux系统时间同步:学习如何设置(linux设置时间同步)
- Linux安装LZMA压缩程序的指南(linux安装lzma)
- Linux系统不可忽视的挂马威胁(linux挂马)
- 跟踪 Linux 进程:一种技术实践(linux跟踪进程)
- Linux平台反汇编软件助推程序研发(linux反汇编软件)
- Linux编程:搭建IDE环境必备技能(linux编程环境ide)
- Linux下活跃的程序:强大无比(linux正在运行的程序)
- 从Windows轻松移植到Linux:一个程序员的指南(程序移植linux)
- 程序Linux下程序调试技巧秘籍(linux下如何调试)
- Linux图表生成技术:在探索中获得精彩结果(linux图表生成)
- 解析Linux中文乱码问题,提升操作效率(linux中文字乱码)
- 以光盘安装Linux,谱写新篇章(光盘安装 linux)