免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1245 | 回复: 5
打印 上一主题 下一主题

[SCO UNIX] 艰难的Linux开发!怎比Unix!难道Linux的稳定性是炒出来的? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-01-09 10:28 |只看该作者 |倒序浏览
为什么程序运行时总会出现"sigmentation fault"和"command terminated"?

我正在将应用系统从Sco Openserver5.0.5移植到Redhat7.2上,遇到不可思议的问题,也许是我在Linux还是入门甚浅。

(1)在SCO上,makefile中编译命令如下例:

cc -o app app.o ...... -lx -lnsl_l ......

无论是Pentium、PII、PIII机器,编译出来的运行时系统都运行稳定健壮。

(2)在Redhat上,makefile中编译命令如下例:

cc -o app app.o ...... -mlarge -O3 -march=pentium -lnsl .......

Pentium机器,运行时总会出现"segmentation fault"或"command terminated",然后退出。

出现这个问题的地方还不定,有时在这里,有时在那里。

奇怪的是,有时程序出错退出的地方,加一些printw、getch语句停顿一下,就能过去了,但在其他地方肯定有另一问题等在那里。

用gdb调试发现进程是收到一个SIGSEGV信号后退出的,有时在malloc过程中收到该信号,有时又在strcmp过程中收到。


在SCO上,程序运行的状态是可预料的,有错误就一定是人的错误,调试时甚至不用工具,只在程序中加些printf语句,定位错误,排除后同样的问题就不会再出现。

而在Redhat上,一切是那么不可预料,明明排除了一个问题,下一次排除其他问题后,在同一地方同样的问题还会再出现。

难道Linux的稳定性是炒出来的,根本名不副实?还是我没入门呢?


如是后者,快请此中高手指点迷津。[/img]

论坛徽章:
0
2 [报告]
发表于 2004-01-18 08:51 |只看该作者

艰难的Linux开发!怎比Unix!难道Linux的稳定性是炒出来的?

我没有在Linux下开发过应用。但我在SCO下遇到过这样的问题:
程序有错,想定位,于是加上了Printf调试,但加了之后错误变了,不是原来的错误了,又是错误还不出现了。删掉Printf又恢复原样。
郁闷了好久。
后来发现是在编译命令行中添加了优化选项的缘故。
去掉优化选项,再用Printf定位就可以了。
于是后来,我一直是不添加优化选项的。

论坛徽章:
0
3 [报告]
发表于 2004-01-19 08:39 |只看该作者

艰难的Linux开发!怎比Unix!难道Linux的稳定性是炒出来的?

原帖由 "zhaojinbo" 发表:
我没有在Linux下开发过应用。但我在SCO下遇到过这样的问题:
程序有错,想定位,于是加上了Printf调试,但加了之后错误变了,不是原来的错误了,又是错误还不出现了。删掉Printf又恢复原样。
郁闷了好久。
后来发..........


这种错误基本上可以肯定是由于内存访问越界引起的。不光是sco下有,在vc下我也遇到过。

论坛徽章:
0
4 [报告]
发表于 2004-01-19 09:04 |只看该作者

艰难的Linux开发!怎比Unix!难道Linux的稳定性是炒出来的?

问题我已经解决了,还是自己程序中指针导致的错,有时换一种写法就通过了,比如,原来用循环移动指针,内存出错,改用指针加法就通过了,其中原因还不清楚。

谢谢各位的热心回帖。

论坛徽章:
0
5 [报告]
发表于 2004-01-19 23:03 |只看该作者

艰难的Linux开发!怎比Unix!难道Linux的稳定性是炒出来的?

你是不是正在使用iBCS模拟,它确实有点问题

论坛徽章:
0
6 [报告]
发表于 2004-01-20 08:17 |只看该作者

艰难的Linux开发!怎比Unix!难道Linux的稳定性是炒出来的?

虽然C的移植性是不错,但不同的编译器之间还是有一点差异的,过了这一关就好多了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP