免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: mingjwan
打印 上一主题 下一主题

程序中有这样的隐患,怎么查出来。 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2006-09-20 10:47 |只看该作者
原帖由 flw 于 2006-9-20 09:26 发表
即使就算是死循环,那也不能说就是个“隐患”呀!
很多程序都是死循环的。

嗬嗬,很多程序都是死循环的?还是有出口吧,比方说通过设定的信号处理(当然了,上述程序不设定特殊的出口处理函数,通过SIGINT也是可以出来的)
所以这个程序从“代码作者“的意图来说,应该还是一种隐患吧,和预期的结果不一样

论坛徽章:
0
22 [报告]
发表于 2006-09-20 11:39 |只看该作者
有些东西就是要程序员来把握的,什么都要编译器来处理,还不如搞个完全代码生成器。程序员的认真和整体素质的提高很重要,这才是主要的。不然搞软件开发的还有活路吗?还不如找个民工来编程算了。

论坛徽章:
0
23 [报告]
发表于 2006-09-20 11:42 |只看该作者
倒是可以拿这个题来考一下新入司的员工们

论坛徽章:
0
24 [报告]
发表于 2006-09-20 11:47 |只看该作者
我想flw的意思是有的程序故意要写成好像死循环的写法的,即使有出口,也不是编译器自己可以判断的...
比如很多人都写:
while (true)
{
// 等待某一个事件的到来才退出
}

诸如此类的.

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
25 [报告]
发表于 2006-09-20 11:51 |只看该作者
别的不说,kernel 就是个死循环!

xinet.d 也是个死循环。

基本上所有的服务程序都是个死循环。

论坛徽章:
0
26 [报告]
发表于 2006-09-20 12:29 |只看该作者
原帖由 飞灰橙 于 2006-9-20 09:26 发表
我的gcc比较a<b的时候,
当两边类型不一致,会给出warning.

两边类型不一致,赋值时会给warnging,但是比较却不会。郁闷。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
27 [报告]
发表于 2006-09-20 12:36 |只看该作者
原帖由 mingjwan 于 2006-9-20 12:29 发表

两边类型不一致,赋值时会给warnging,但是比较却不会。郁闷。

为什么不用 lint 试试?
怪不得有人建议把 lint 和 gcc 集成到一起,
原来还真有人拿这个说事。

论坛徽章:
0
28 [报告]
发表于 2006-09-20 12:37 |只看该作者
原帖由 coldwarm 于 2006-9-19 21:04 发表
没用过pclint,但每个lint工具都应当带一些默认规则。除非你要定制自己的lint规则库,不过我觉得默认规则应当够用了。
[code]
Splint 3.1.1 --- 21 Apr 2006

type.c: (in function main)
type.c:6:6: Assig ...

你是用什么命令运行的啊。什么参数呢》
我在aix下运行lint a.c
输出了结果大部分是报告.h文件的问题的。
样例如下:
"stdio.h", line 447 ("a.c"): warning: symbol opterr declared but never used or defined
"inttypes.h", line 102 ("a.c"): warning: function wcstoumax declared but never used or defined
"a.c", line 7: warning: function printf used but not defined
"a.c", line 7: warning: function printf return value is always ignored
"stdio.h", line 269 ("a.c"): warning: function sscanf declared but never used or defined
"stdio.h", line 260 ("a.c"): warning: function setvbuf declared but never used or defined
"stdio.h", line 310 ("a.c"): warning: function putchar_unlocked declared but never used or defined
"stdio.h", line 449 ("a.c"): warning: symbol optopt declared but never used or defined
"vm_types.h", line 152 ("a.c"): warning: symbol adspace_t defined but never used
"stdio.h", line 295 ("a.c"): warning: function ungetc declared but never used or defined
"stdio.h", line 192 ("a.c"): warning: function vfscanf declared but never used or defined
"vm_types.h", line 136 ("a.c"): warning: symbol vmaddr_t defined but never used

根本就没有出现你说的报告。
望指点指点。

论坛徽章:
0
29 [报告]
发表于 2006-09-20 13:53 |只看该作者
最近搞的程序有N个线程, 个个都死循环没有任何出口.

论坛徽章:
0
30 [报告]
发表于 2006-09-20 14:01 |只看该作者
原帖由 ccjjhua 于 2006-9-20 11:39 发表
有些东西就是要程序员来把握的,什么都要编译器来处理,还不如搞个完全代码生成器。程序员的认真和整体素质的提高很重要,这才是主要的。不然搞软件开发的还有活路吗?还不如找个民工来编程算了。


听你这话, 民工的认真和整体素质就不如程序员了?
我怎么没觉得程序员比民工对待工作认真, 我也没觉得程序员比民工的整体素质高..
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP