`
isiqi
  • 浏览: 16041967 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

GDB调试例子1

阅读更多

1 #include <unistd.h></unistd.h>
2
3 static char buff [256];
4 static char* string;
5 int main ()
6 {
7   printf ("Please input a string: ");
8   gets (string);  
9   printf ("\nYour string is: %s\n", string);
10 }

上面这个程序非常简单,其目的是接受用户的输入,然后将用户的输入打印出来。该程序使用了一个未经过初始化的字符串地址 string,因此,编译并运行之后,将出现 Segment Fault 错误:
$ gcc -o bugging -g bugging.c
$ ./bugging
Please input a string: asfd
Segmentation fault (core dumped)
为了查找该程序中出现的问题,我们利用 gdb,并按如下的步骤进行:
1.运行 gdb bugging 命令,装入 bugging 可执行文件;
2.执行装入的 bugging 命令 run;
3.使用 where 命令查看程序出错的地方;
4.利用 list 命令查看调用 gets 函数附近的代码;
5.唯一能够导致 gets 函数出错的因素就是变量 string。用print命令查看 string 的值;
6.在 gdb 中,我们可以直接修改变量的值,只要将 string 取一个合法的指针值就可以了,为此,我们在第8行处设置断点 break 8;
7.程序重新运行到第 8行处停止,这时,我们可以用 set variable 命令修改 string 的取值; 例如:set variable string = (char*)malloc(100)
8.然后继续运行,将看到正确的程序运行结果。

分享到:
评论

相关推荐

    Ubuntu GDB调试例子

    对Ubuntu中的GDB调试命令以及功能做简要的介绍

    gdb调试常用命令及调试例子

    gdb调试常用命令及调试例子.可以作为一个手册使用。

    gdb调试费方法详解[含例子]

    gdb调试费方法详解[含例子],包含gdb所有常用的调试命令使用及例题,适合学习和巩固gdb调试

    GDB调试实例

    GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的...

    堆栈溢出调试-gdb-例子

    通过列举linux平台下的例子,并结合gdb描述了堆栈溢的过程。

    GDB调试和例子

    Linux 包含了一个叫 gdb 的 GNU 调试程序. gdb 是一个用来调试 C 和 C++ 程序的强力调试器. 它使你能在程序运行时观察程序的内部结构和内存的使用情况. 以下是 gdb 所提供的一些功能: 它使你能监视你程序中变量的值...

    gdb调试技术的详细介绍

    gdb调试介绍的详细,列举了例子,有利于初学者学习,掌握gdb

    递归调用的子程序示例gdb调试用

    递归调用的子程序示例gdb调试用,是一个很好的学习资料,有选择的进行了GDB的调度,是从很多好例子中挑出来的。

    linux使用gdb调试方法详解

    linux使用gdb调试方法详解,包含 GDB 命令、在 GDB 里运行程序的例子,如何打断点和继续运行、查看堆栈信息、检查源文件,查看内存信息和各种数据

    GDB如何调试程序

    GDB调试,一般初学者都觉得很陌生,该文档提供了详细的调试过程,并且以C、C++为例子,讲解如何用GDB调试程序。对读者很有帮助。

    用GDB调试程序

    gdb调试技术入门的好资料,作者用例子逐步说明

    gdb调试器的使用说明

    通过几个例子说明了gdb调试器的常用功能,讲解的非常详细有条理

    GDB调试资料文档,HTML格式

    该文档主要包含GDB调试相关,还有例子说明,HTML格式的。特好!

    GDB调试使用手册——常用命令,命令分类详解,调试举例

    这是根据自己的经常收集整理的GDB调试常用命令与命令详解。包括三个部分: 1. 常用命令,简单的列举了GDB的常用命令; 2. 分类命令详解,分类别详细描述了各个命令; 3.举例分析,以一个程序的例子大致说明了GDB的...

    GDB完全手册-Linux调试工具

    GDB完全手册,Linux调试工具GDB,入门级使用例子

    gdb调试方法

    详细列出了gdb的命令,及使用方法。还举了一个例子,说明编写一个C程序,使用gcc编译,使用gdb调试的整个过程。对于初学者很容易看懂。

    用GDB调试程序.mht

    简单的GDB用法,初学者入门。内含一简单例子。

    用gdb调试程序_中文版(极有用,常用命令和方法都介绍很清楚)

    用例子介绍了gdb的使用方法,常用命令都涉及了,一步一步介绍了整个调试过程,非常有用。而且没有没用的屁话,是我见过的最好的中文版的gdb的介绍说明。

    100个gdb小技巧(v1.0).pdf

    非常好的gdb速查手册,适合gdb初学者,可以迅速了解到有哪些常用的gdb技巧。每个技巧都有相应的例子。

    gdb使用手册.doc

    详细介绍gdb的使用,并有例子,帮助更好的理解掌握调试手段,让你在调试过程中畅通无阻,只是罗列了一些带用的GDB的命令和使用方法

Global site tag (gtag.js) - Google Analytics