`
ancin
  • 浏览: 52716 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

GDB简单应用

gdb 
阅读更多
简单示例:

#include <stdio.h>

int func(int n)
{
int sum =0,i;
for(i=0;i<n;i++)
{
  sum+=i;
}
return sum;
}
/***
*This test gdb programme;
*
***/
int main( int argc, char *argv[] )
{
  int i;
  long result = 0;
  for(i=1; i<=100; i++)
  {
   result += i;
  }
  printf("result[1-100] = %d \n", result );
  printf("result[1-250] = %d \n", func(250) );
  return 0;
}
打开MSYS Shell编译: gcc -g tst.c -o tst
GDB的命令Help

敲入b按两次TAB键,你会看到所有b打头的命令:
(gdb) b

backtrace break bt
(gdb)
1.设置断点
break <function>
在进入指定函数时停住。C++中可以使用class::function或function(type,type)格式来指定函数名。

可以设置break if i=100,表示当i为100时停住程序。

2. 观察断点

watch <expr>
为表达式(变量)expr设置一个观察点。一量表达式值有变化时,马上停住程序。

rwatch <expr>
当表达式(变量)expr被读时,停住程序。

awatch <expr>
当表达式(变量)的值被读或被写时,停住程序。

info watchpoints
列出当前所设置了的所有观察点。

3. 捕捉断点

catch <event>
当event发生时,停住程序。event可以是下面的内容:
1、throw 一个C++抛出的异常。(throw为关键字)
2、catch 一个C++捕捉到的异常。(catch为关键字)
3、exec 调用系统调用exec时。(exec为关键字,目前此功能只在HP-UX下有用)
4、fork 调用系统调用fork时。(fork为关键字,目前此功能只在HP-UX下有用)
5、vfork 调用系统调用vfork时。(vfork为关键字,目前此功能只在HP-UX下有用)
6、load 或 load <libname> 载入共享库(动态链接库)时。(load为关键字,目前此功能只在HP-UX下有用)
7、unload 或 unload <libname> 卸载共享库(动态链接库)时。(unload为关键字,目前此功能只在HP-UX下有用)

4.清除断点

clear <linenum>;

clear <function>;
delete [breakpoints] [range...]

disable [breakpoints] [range...]

enable [breakpoints] [range...]

5. 单步执行

continue [ignore-count]

step <count>

next <count>

set step-mode on

6.查看栈信息

backtrace 活着bt

frame 或 f

7. 查看原程序

list 或者l

8. 查看源代码内存

info line tst.c:func

查看汇编代码:
disassemble func

9. 参看运行数据

print /<f> <expr> f为数据格式


查看数组:

(gdb) p *array@len

display/<fmt> <expr>

查看寄存器:

info registers

info all-registers












分享到:
评论

相关推荐

    gdb_linux下的应用程序GDB调试方法

    ### GDB Linux下的应用程序调试方法 #### 一、引言 GDB(GNU Debugger)作为一款强大且功能全面的调试工具,在Linux环境下被广泛应用于软件开发过程中。它不仅支持多种编程语言,还提供了丰富的特性来帮助开发者...

    GDB调试学习手册 简单实用

    GDB是开源社区GNU开发的一款强大的程序调试工具,广泛应用于C、C++等语言的调试工作。通过详细步骤和实例,这本手册使得GDB的学习变得简单易懂,即使是初学者也能快速上手。 在GDB调试过程中,首先需要了解的基本...

    GDB官方操作手册

    GDB支持多种操作系统,并且可以调试本地应用程序或通过网络调试远程应用程序。 #### GDB手册概述 本手册提供了GDB的全面介绍,旨在帮助用户更好地理解和使用GDB。手册包含了GDB的基础概念、命令行交互、调试技巧...

    使用gdb进行调试 gdb

    GDB,全称为GNU Debugger,是由GNU开源组织开发的一款强大且广泛应用于UNIX系统下的程序调试工具。它为程序员提供了深入理解和修正代码错误的能力,尤其是在复杂的多线程或服务器级应用中。与图形界面调试器如Visual...

    Linux下简单GDB调试教程

    ### Linux下简单GDB调试教程 #### GDB简介与调试基础 GDB(GNU调试器)是一款强大的开源调试工具,广泛应用于Linux环境下的程序调试。它可以帮助开发者在开发过程中识别和修复程序中的错误,提高软件质量。GDB支持...

    GDAL打开ESRI FileGDB格式数据

    在编程环境中,GDAL的Python API使得在脚本或应用中处理FileGDB变得简单。首先,你需要安装GDAL的Python绑定(通常通过`gdal`或`osgeo`库)。下面是一个简单的示例,展示如何打开FileGDB,获取图层信息并遍历特性: ...

    SuperMap Deskpro .NET 导入GDB数据

    《SuperMap Deskpro ...总之,SuperMap Deskpro .NET通过强大的.NET SDK,使得导入GDB数据变得简单而高效。无论是开发人员还是GIS操作者,理解并掌握这一过程都将极大地提升工作效率,实现GIS数据的有效管理和利用。

    gdb指南.pdf

    gdb,全称GNU Debugger,是一款由GNU项目开发的、广泛应用于Linux系统下的强大调试工具,专门用于调试C和C++语言编写的程序。它能够帮助程序员深入理解程序运行时的状态,包括观察变量值的变化、设置断点控制程序...

    jubincn博文“GDB简单教程”中的示例程序

    本教程将基于jubincn在其CSDN博客文章“GDB简单教程”中提供的示例程序进行深入讲解。通过学习GDB,开发者可以更好地理解代码运行时的状态,定位并修复程序错误。 首先,让我们来看看核心文件`main.cc`,它是示例...

    gdb调试工具详解

    GDB,全称为GNU Debugger,是由GNU开源组织发布的强大调试工具,专为Unix系统设计,但在包括Linux在内的多种操作系统中都有广泛应用。GDB之所以受到青睐,主要归功于其高度的灵活性和强大的功能集,尤其是在命令行...

    GDB英文官方手册

    GDB(GNU Debugger)是GNU项目提供的一个源代码级别的调试工具,广泛应用于各种Linux发行版及类Unix系统中。它可以帮助开发者查找程序中的错误、追踪执行流程以及进行内存管理等操作。本手册将详细介绍GDB的功能与...

    Linux课件:GDB调试简明指南.pdf

    例如,可以使用 GDB 调试一个简单的问候程序,展示了 GDB 的典型应用。该程序使用 `greeting` 名称,显示一个简单的问候,并将其反序列化列出。 GDB 是 Linux 系统中的一款强大调试工具,提供了多种功能和命令,...

    利用ArcGis API解析FileGDB

    以下是一个简单的JavaScript示例,演示如何使用ArcGIS API读取FileGDB中的数据: ```javascript require([ "esri/Map", "esri/views/MapView", "esri/layers/FeatureLayer" ], function(Map, MapView, Feature...

    Linux环境下GDB的使用

    GDB 是一个强大的命令行调试工具,在 Linux 环境下广泛应用于 C++ 开发调试。以下是 GDB 的使用方法和知识点总结: GDB 概述 GDB 是 GNU 开源组织发布的一个强大的 UNIX 下的程序调试工具。它可以帮助开发者完成...

    reahat的gdb手册

    退出gdb可以通过简单的`quit`命令完成,同时还可以记录调试过程中的输出,便于后续分析。 ### gdb命令详解 gdb的命令体系十分庞大,涵盖了程序控制、数据观察、表达式计算、内存管理等多个方面。熟练掌握gdb命令...

    gdb7.8.1.7z

    安装arm-linux-gdb的过程相对简单。通常,你可以从官方网站下载对应版本的arm-linux-gdb,如"7.8.1",将其解压到本地文件夹。解压后的文件名通常为"gdb7.8.1",包含了所有必要的安装文件。接下来,按照以下步骤进行...

    debugging_with_gdb(中文版pdf)

    通过上述分析可以看出,“debugging_with_gdb(中文版pdf)”不仅是一份简单的手册,更是一个全面的教程,旨在帮助用户深入了解和高效使用 GDB 调试器。无论是初学者还是有一定经验的开发者,都可以从中获得有价值的...

    GDB调式ARM开发板

    其中,**gdb+gdbserver**的组合是最常见的调试方式,适用于大多数情况下的应用程序调试。 #### 四、gdb+gdbserver的配置与使用 ##### 4.1 宿主机GDB的安装 1. **下载GDB源码**:从官方站点(例如...

    GDB完全中文手册.zip

    GDB的基本应用包括以下几个方面: 1. **启动和配置GDB**:首先,你需要了解如何编译带有调试信息的程序,并学会通过命令行启动GDB,设置源代码路径和目标程序。手册将详细介绍这些基本操作,包括`gdb`命令行参数的...

    用 GDB 调试程序

    【GDB调试程序详解】 GDB(GNU Debugger)是一款强大的C和C++程序调试工具,它允许程序员在程序运行过程中查看其内部状态和内存使用情况...在实际应用中,不断实践和探索GDB的各种功能,会帮助你成为更优秀的程序员。

Global site tag (gtag.js) - Google Analytics