QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2253|回复: 18

gcc下的“段错误”是怎么回事?

[复制链接]
发表于 2003-4-18 09:06:35 | 显示全部楼层 |阅读模式
编译命令我用的是 gcc -Wall -o * *.c
没有错误提示,
但在执行 ./* 命令时 它告诉我是“段错误”。
这是怎么回事?
发表于 2003-4-18 10:16:38 | 显示全部楼层
编程错误,可能的原因爆多,看看是不是出现了类似
int a;
scanf("%d",a);
这样的错误,这个错误就会引发这个segment fault的。
回复

使用道具 举报

发表于 2003-4-18 11:06:34 | 显示全部楼层
this is nothing to do with the gcc, its the problem in u code. the most frequent error is pointer error. if u code is not so long, post it online.
回复

使用道具 举报

 楼主| 发表于 2003-4-19 10:08:50 | 显示全部楼层
我写的是个关于数值分析的程序,代码比较长,
我检查了一遍没有出现 mikeshi 兄说的那种错误,
也没有用到指针。
回复

使用道具 举报

发表于 2003-4-19 10:14:59 | 显示全部楼层
can u download a valgrind and use it to detect the illlegal memory use in u program? it is easy to use.
回复

使用道具 举报

 楼主| 发表于 2003-4-19 11:12:00 | 显示全部楼层
thank you.
but where I can find it ?
回复

使用道具 举报

发表于 2003-4-19 11:17:57 | 显示全部楼层
search from web. pls
回复

使用道具 举报

 楼主| 发表于 2003-4-19 11:53:35 | 显示全部楼层
"Program received signal SIGSEGV, Segmentation fault."

when I run the program in gdb. It show me this sentence.
what does the word "SIGSEGV" mean ?
Thank you !
回复

使用道具 举报

发表于 2003-4-19 12:00:05 | 显示全部楼层
that is u program has illegal operation, so system send such a signal to u. u can add some print to see where u segment fault. i forget, but there is a way to run gdb and break u program when have such illegal access.
i still suggest u to search and download this valgrind, it can generate a report to show which one is wrong.
回复

使用道具 举报

发表于 2003-4-19 12:02:07 | 显示全部楼层
can u check u array index. do u malloc the mem for pointer? or u can find some info from web to check how to utilize that core dump.
回复

使用道具 举报

发表于 2003-4-19 12:13:03 | 显示全部楼层
try this
http://www-acs.ucsd.edu/offerings/userhelp/HTML/dbx.debug.main,d.html#label1
回复

使用道具 举报

发表于 2003-4-19 13:47:57 | 显示全部楼层
[quote:fc1014fc7b="tuboshu"]我写的是个关于数值分析的程序,代码比较长,
我检查了一遍没有出现 mikeshi 兄说的那种错误,
也没有用到指针。[/quote]
我只是举个例子,引起这个错误的有很多可能,甚至,比如在dos3.0下的软件有些在6.22下使用也会有这个错误
回复

使用道具 举报

 楼主| 发表于 2003-4-19 16:11:52 | 显示全部楼层
[quote:b4f4fe8732="cheungming"]that is u program has illegal operation, so system send such a signal to u. u can add some print to see where u segment fault. i forget, but there is a way to run gdb and break u program when have such illegal access.
i still suggest u to search and download this valgrind, it can generate a report to show which one is wrong.[/quote]
Thank you!
回复

使用道具 举报

 楼主| 发表于 2003-4-19 16:14:07 | 显示全部楼层
[quote:e14e57010b="mikeshi"][quote:e14e57010b="tuboshu"]我写的是个关于数值分析的程序,代码比较长,
我检查了一遍没有出现 mikeshi 兄说的那种错误,
也没有用到指针。[/quote]
我只是举个例子,引起这个错误的有很多可能,甚至,比如在dos3.0下的软件有些在6.22下使用也会有这个错误[/quote]
没错! 我在BC 3.1 下面编译了一下
它只是告诉我程序出现 而中断运行
回复

使用道具 举报

发表于 2003-4-19 16:43:09 | 显示全部楼层
我昨天用rm删除一个目录还出现段错误呢,然后整个系统就不能用了。后来发现好象那个分区的文件分配表坏了(我的home分区,惨啊),只好备份,格式化,重建用户,恢复备份才解决这个问题。
所以谁知道段错误是个什么错误啊,大概就是说你的系统隔屁了。
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-16 04:35 , Processed in 0.037445 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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