GDB调试C程序:参数详解与使用方法

需积分: 15 1 下载量 164 浏览量 更新于2024-08-19 收藏 433KB PPT 举报
本文是一篇关于使用GDB(GNU调试器)进行C程序调试的实用指南,作者袁媛于2010年9月3日分享了相关经验。GDB是Linux和Unix系统中强大的调试工具,对于排查程序异常和错误极其关键。 文章首先介绍了如何生成调试信息。当程序因不寻常原因退出时,内核会在当前工作目录下自动生成core文件,这是包含程序内存状态的映像,附加了详细的调试信息。通过GDB加载core文件,可以定位到引发问题的源代码位置,这对于故障诊断非常有帮助。 GDB的使用方式分为几种情况: 1. 直接运行gdb与执行文件(如`gdb execfile`)或同时加载core文件(如`gdb execfile corefile`)。 2. 对于后台服务程序,可以指定其PID(进程ID)来自动attach并调试(如`gdb [execfile] <PID>`)。 3. 设置选项方面,建议在信号中断导致错误时设置core文件的生成,可通过调整ulimit命令来设置core文件大小为无限。 文章还详细解释了GDB的一些参数: - `-symbols <file>` 和 `-s <file>`:用于从指定文件中读取符号表,帮助理解函数和变量的含义。 - `-se file`:读取符号表并将信息应用到可执行文件中,便于调试。 - `-core <file>` 和 `-c <file>`:用于指定调试时的coredump文件。 - `-directory <directory>` 或 `-d <directory>`:增加源文件的搜索路径,扩展GDB查找源代码的能力,默认路径是环境变量PATH定义的。 最后,给出了实际操作示例,展示了如何在终端中使用GDB命令,如`file`来加载程序文件,以及`where`和`bt`(backtrace)来查看调用栈和异常信息。 这篇文章深入浅出地讲解了GDB的基本用法,包括核心文件的生成、加载、以及如何利用GDB的参数和命令进行有效调试,对于C程序员来说是一份宝贵的参考资料。