Chinaunix首页 | 论坛 | 博客
  • 博客访问: 134911
  • 博文数量: 49
  • 博客积分: 65
  • 博客等级: 民兵
  • 技术积分: 135
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-06 12:26
文章分类
文章存档

2015年(21)

2014年(5)

2012年(20)

2011年(3)

我的朋友

分类: C/C++

2015-01-29 21:47:57

原文地址:使用GDB调试程序 作者:sudoers

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 : 从指定文件中加载符号表

 

阅读(1131) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~