日期:2014-05-16  浏览次数:20713 次

gdb到底怎么用哦....
-----------------
清单     一个有错误的   C   源程序   bugging.c
-----------------
#include   <stdio.h>
#include   <stdlib.h>

static   char   buff   [256];
static   char*   string;
int   main   ()
{

        printf   ( "Please   input   a   string:   ");
        gets   (string);

        printf   ( "\nYour   string   is:   %s\n ",   string);
}
-----------------
上面这个程序非常简单,其目的是接受用户的输入,然后将用户的输入打印出来。该程序使用了
一个未经过初始化的字符串地址   string,因此,编译并运行之后,将出现   Segment   Fault   错误:
$   gcc   -o   bugging   -g   bugging.c
$   ./bugging
Please   input   a   string:   asfd
Segmentation   fault   (core   dumped)
下面的调试步骤是按照书上说明的进行的哦   还是不行的
1.gdb   bugging         装入   bugging   可执行文件;
2.run                         执行装入的   bugging   命令;
3.where                     查看程序出错的地方;
4.list                       查看调用   gets   函数附近的代码;
5.print   string       查看   string   的值;
6.break   11               第   11   行处设置断点;
7.start                     程序重新运行到第   11   行处停止,这时,我们可以用   set   variable   命令修改   string   的取值;(这一部不晓得怎么做)
8.continue             继续运行,将看到正确的程序运行结果


就是那个第七步到底怎么做哦...程序要求我输入string的时候,我输入了之后   程序就挂了   关了,我再set   string   "*** "   就没用了呀...


还有这个怎么set哦,还有在什么时候set哦

------解决方案--------------------
你只给个字符串指针 没分配空间
当然就段错误了啊