LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1051|回复: 3

求助:gcc编译的问题

[复制链接]
发表于 2005-12-7 18:29:30 | 显示全部楼层 |阅读模式
gcc编译一个出错的c文件,为了产生core文件来学习gdb,原文件test.c如下
static void fun1()
{
        char *cp = 0;

        *cp = '!';
}

int main(int argc, char **argv)
{
        fun1();
        return 0;
}
然后编译:gcc -g -D_GNU_SOURCE  test.c -o test_out
执行 ./test_out
输出只有“段错误”,并不产生core文件,请教为什么?怎么解决,谢谢!
发表于 2005-12-7 18:43:52 | 显示全部楼层
char *cp;
只是得到了一个字符指针,并没有分配一个字符空间。此时,cp所指向的内存是不定的,你 *cp=0; *cp='!';当然不能通过编绎了!
如果你真要操作字符指针,可以这样:
char c='0';//和c=0不同
char *cp=&c;
*cp='!';
建议你先别学gdb。
而且你应该到Linux 程序设计专题讨论发这个贴。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-7 22:14:43 | 显示全部楼层
可能我没说清楚,我想问怎么产生core文件。
这个程序就是为了引起问题进行调试的,执行时应该产生core文件,但是没有,so请问!!
谢谢!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-9 23:04:44 | 显示全部楼层
应该是设置unlimit什么的,但是怎么没有这个命令?没有查到在那个包里
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表