GDB概述
在Linux平台上作开发的朋友相信都对GDB很熟悉了,可以说是不可或缺的工具。我将在此系统的整理使用GDB调试程序的方法。在本系列的文章中,都以C/C++程序的调试为例。
1. GDB可以提供哪些功能?
(1)源码管理
查看源码、搜索源码、查看源码在内存中的地址等
(2)断点管理
设置断点、条件断点、在断点处指定行为、查看断点信息、删除断点等
(3)观察点管理
设置更新观察点、读观察点、查看观察点信息等
(4)捕捉点管理
设置捕捉点,捕捉感兴趣的程序运行时事件,如异常等
(5)进程附着
可以附着到运行的服务程序或其它类型程序进行调试
(6)程序执行环境管理
查看内存、寄存器,查看变量、修改变量,查看堆栈等
(7)单步调试
可以单步进入和步出对程序进行调试
(8)信号处理
支持设置对某类型信号的处理
(9)多线程支持
如果程序是多线程的,可以设定断点等是对多线程还是特定线程有效,提供对多线程程序的调试支持
(10)gdb运行时配置修改
在进入gdb环境后,随时可以根据调试需要修改gdb调试运行参数
(11)在gdb中运行系统命令
2. 启动gdb
启动gdb进行程序调试有多种方法,简述如下:
(1)gdb
$>gdb (gdb) file ...load information (gdb) run
|
这种方式是:先单独启动gdb,然后通过 file 命令加载要调试的程序
(2)gdb program
$>gdb ...load information (gdb) run
|
这种方式是:启动gdb时就指定要调试的程序,启动即加载程序
(3)gdb program core
$>gdb ...load information... ...error infomation (gdb)
|
这种方式是:启动时指定要调试的程序,及使用的core文件;该方式调试运行时崩溃,系统进行了内存转储生成core文件的程序,目的通常是查看系统崩溃时的运行环境,定位问题
(4)gdb program pid
$>gdb <program> <PID> ...load information (gdb)
|
这种方式是:调试服务程序,服务程序的进程ID
(5)gdb -option [parameter]
gdb启动时还可以指定一些选项,可以通过gdb -help 命令查看有哪些选项。下面列举几个常用选项:
-c :指定使用的core文件, 同 -core
-d :加入一个源文件搜索路径, 同 -directory
-s : 从指定文件中加载符号表
阅读(2151) | 评论(0) | 转发(1) |