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哦
[解决办法]
你只给个字符串指针 没分配空间
当然就段错误了啊