`
rollstone
  • 浏览: 39014 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于GDB

    博客分类:
  • GDB
gdb 
阅读更多
基本使用不会贴在这里。只是放自己的使用心得。
基本使用可以看这个
http://fanqiang.chinaunix.net/program/other/2006-07-14/4834.shtml
1.为什么没有调试信息?
多模块的时候,我明明debug编译了,相应的.so文件也拷贝到安装目录中了,加断点的时候,找不到文件提示:No source file namedXXXXX。
原来要运行的时候才加载对应的文件。
比如说你要给一个对话框创建的时候的代码加断点。先把这个对话框运行起来,然后加断点就可以了。
网上搜了下,说可以在.gdbinit里加
"set breakpoint pending on"
解决。我没试过。

2.调用堆栈
命令:bt  //列出调用堆栈
命令:frame id  //栈顶ID号为0,往后依次类推。
用frame命令不会让程序的执行跳转到对应位置,但是你可以查看变量及各种状态。程序的下一条指令不会随frame而边。它会给你造成程序好像从后面重新执行的错觉。

3.打印内存。
X命令。可以用help x来查看。
x/<n/f/u> <addr>

n、f、u是可选的参数。
n 是一个正整数,表示显示内存的长度,也就是说从当前地址向后显示几个地址的内容。
f 表示显示的格式,参见上面。如果地址所指的是字符串,那么格式可以是s,如果地十是指令地址,那么格式可以是i。
x 按十六进制格式显示变量。
d 按十进制格式显示变量。
u 按十六进制格式显示无符号整型。
o 按八进制格式显示变量。
t 按二进制格式显示变量。
a 按十六进制格式显示变量。
c 按字符格式显示变量。
f 按浮点数格式显示变量。
u表示单位的大小:如果不指定的话,GDB默认是4个bytes。u参数可以用下面的字符来代替,b表示单字节,h表示双字节,w表示四字 节,g表示八字节。
例子:
假设t是int型变量
(gdb) x/t &t
0xbffff3ac:     00000000001010000011111111111101
(gdb) x/4bt &t
0xbffff3ac:     11111101        00111111        00101000        00000000



4.打印数组
例如,你的程序中有这样的语句:
int *array = (int *) malloc (len * sizeof (int));
于是,在GDB调试过程中,你可以以如下命令显示出这个动态数组的取值:
p *array@len

5.core dump
http://my.oschina.net/kaixindewo/blog/28526
http://www.cnblogs.com/lbsx/archive/2010/10/09/1846535.html
http://cs.baylor.edu/~donahoo/tools/gdb/tutorial.html
http://www.linuxsir.org/bbs/thread344797.html
分享到:
评论

相关推荐

    关于gdb调试资料大全

    总的来说,这份"关于gdb调试资料大全"应该包含了GDB的基本用法、进阶技巧以及实战应用,可以帮助开发者熟练掌握这个强大的调试工具。无论是排查错误、理解程序行为还是优化性能,GDB都能为你提供有力的支持。通过...

    最新gdb8.1和gdb7.7

    关于GDB的基本使用方法,包括但不限于以下几点: 1. **启动GDB**:通过命令行输入`gdb &lt;可执行文件&gt;`来启动GDB并加载目标程序。 2. **设置断点**:使用`break`或`b`命令可以在特定行号、函数名或地址设置断点。 3. *...

    GDB调试教材压缩包

    《GDB调试教材压缩包》包含了多个关于GDB调试工具的重要资源,旨在帮助开发者深入了解和熟练运用GDB进行程序调试。下面将详细阐述GDB的基本工作原理、主要功能以及远程调试和反向调试等关键知识点。 GDB,全称为GNU...

    gdb调试中文学习资料

    这个压缩包文件包含了一系列关于GDB调试的学习资料,涵盖了从基础到进阶的多个方面,对于想要深入理解和掌握GDB调试技术的开发者来说,是非常宝贵的资源。 首先,我们来看《GDB调试命令手册.pdf》。这本书籍详细...

    reahat的gdb手册

    根据给定文件的信息,我们可以提炼出关于gdb(GNU调试器)在Red Hat Enterprise Linux 4中的使用和重要知识点。以下是对这些知识点的详细解析: ### gdb:Red Hat Enterprise Linux 4下的调试利器 gdb是GNU项目下...

    gdb 7.6.2的官方手册

    此外,用户被鼓励向相关网址提交关于GDB的bug报告和评论。 总结而言,GDB手册是一份详细指导文档,涵盖了GDB调试器的大部分功能和使用方法。手册的结构清晰,内容详实,使得用户即使面对复杂的调试任务,也能通过...

    linux下gdb使用

    以下是关于GDB使用的一些关键知识点: 1. **启动GDB**:通过输入`gdb PROGRAM`来启动GDB,并加载需要调试的程序`PROGRAM`。 2. **设置源代码路径**:使用`directory DIR`命令将`DIR`添加到源代码搜索路径,以便GDB...

    GDB不完全手册( 入门篇)

    - 巫山霏云的个人网站提供了更多关于Free Pascal和GDB的使用心得和编译选项的中文解释。 请注意,本文档可能因时间限制存在错误和不足,作者欢迎读者提出指正,并会在个人网站上更新修正信息。 **总结** GDB是一...

    GDB QUICK REFERENCE.pdf

    - 标签“gdb”明确了文档的主题,即关于GDB调试器的使用指南。这有助于用户在搜索或分类资料时准确识别文档内容。 #### 部分内容详解 1. **启动GDB** - **`gdb`**:启动GDB而没有加载任何特定的程序或核心转储。...

    gdb调试工具

    以下是一些关于GDB调试的关键知识点: 1. **安装与启动**:在Linux环境下,通常通过包管理器(如apt或yum)安装GDB。启动GDB时,可以附加到正在运行的进程,或者通过gdb [binary_file]命令加载待调试的二进制文件。...

    Linux下的GDB调试手册

    在GDB中文手册完美版中,你会找到更多关于GDB的详细信息,包括如何调试共享库、如何利用GDB进行性能分析、以及各种调试技巧和最佳实践。这是一份全面的学习资源,无论你是初学者还是经验丰富的开发者,都能从中...

    gdb手册(pdf)

    ### gdb手册核心知识点详解 #### 一、gdb简介与手册概述 ...以上是gdb手册中关于gdb的核心知识点的详细解析,这些内容为初学者提供了全面且深入的理解,同时也为高级用户提供了一些高级技巧和应用场景。

    GDB完全中文手册.zip

    《GDB完全中文手册》是一份详尽的调试工具指南,专为初学者和有经验的程序员提供关于GDB(GNU调试器)的全面知识。GDB是GNU项目的一部分,是一个强大的开源调试器,用于检查和调试C、C++、Fortran等语言编写的程序。...

    GDB 6.3 for WINDOWS编程工具

    以下是一些关于GDB的知识点: 1. **基本概念**:GDB是一个命令行工具,允许程序员在程序运行时查看变量的值,设置断点,单步执行代码,检查内存状态等。它提供了一套丰富的命令来控制程序的执行。 2. **安装与配置...

    gdb.rar_gdb

    本资料集“gdb.rar_gdb”包含了关于GDB的调试知识,对于想要掌握如何对嵌入式应用程序进行调试的开发者来说,是一份宝贵的资源。 首先,我们来了解什么是`GDB`。GDB是GNU Project的一部分,它提供了一个命令行界面...

    gdb完全手册.pdf

    标题和描述中提到的知识点是关于GDB(GNU Debugger)的介绍和重要性。GDB是一个由GNU开源组织发布的强大的程序调试工具,专用于UNIX系统下的软件开发。尽管许多开发者可能更倾向于使用具有图形用户界面的集成开发...

    GDB 调试工具指南

    以上就是关于GDB调试工具的基本使用介绍,通过掌握这些基本操作,开发者可以有效地进行程序调试,解决各种复杂的问题。GDB的功能非常强大,除了上述提到的功能外,还有许多高级特性,如条件断点、监控点等,这些都...

    Gdb调试工具.rar

    此外,文档中提及的"aybook.cn_gdbdhignukaiyuan0116.pdf"可能是另一份关于GDB的资料,可能包含更详尽的教程或者实例。"E书说明.txt"可能是对这两本书的说明,包括获取更多资源的链接,例如"更多电子书下载.html"。 ...

    GDB.rar_gdb

    本资料是关于GDB调试测试工具的使用笔记,涵盖了日常编程调试中常见的方法和命令。通过学习这份文档,你将能够深入理解GDB的使用技巧,提高你的编程效率。 1. **GDB安装与启动**:首先,确保你的Linux环境中已经...

Global site tag (gtag.js) - Google Analytics