找回密码
 FreeOZ用户注册
查看: 3427|回复: 26
打印 上一主题 下一主题

和大家汇报一下让我吐血的Debug 6小时

[复制链接]
跳转到指定楼层
1#
发表于 9-8-2010 03:47:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
今天忙活了一天,只写出了一个Javabean。理论上说,东西其实很早就写好了,只是.......,大家看图就知道了。

评分

参与人数 2威望 +30 收起 理由
trisun + 20 谢谢分享!
chubbycat + 10 你太有才了!

查看全部评分

回复  

使用道具 举报

2#
发表于 9-8-2010 08:12:00 | 只看该作者
Haha
hehe
回复  

使用道具 举报

3#
发表于 9-8-2010 08:13:19 | 只看该作者
回复  

使用道具 举报

4#
发表于 9-8-2010 09:30:34 | 只看该作者
回复  

使用道具 举报

5#
发表于 9-8-2010 09:34:22 | 只看该作者
回复  

使用道具 举报

6#
发表于 9-8-2010 10:06:40 | 只看该作者
这个永远不能避免的,Let's enjoy Debug
回复  

使用道具 举报

7#
发表于 9-8-2010 10:07:13 | 只看该作者
经验是DEGUG一个小时还没找到错误,就不再DEBUG了。
一般过几个小时,或者一天,答案自然就出来了

评分

参与人数 1威望 +20 收起 理由
dark008 + 20 多谢高人的建议!

查看全部评分

回复  

使用道具 举报

8#
发表于 9-8-2010 12:17:22 | 只看该作者
是啊,睡一觉,第二天一步步来,就能找到问题啦

评分

参与人数 1威望 +20 收起 理由
dark008 + 20 多谢高人的建议!

查看全部评分

回复  

使用道具 举报

9#
发表于 9-8-2010 16:20:26 | 只看该作者
许多年以前,有一次我debug一个workflow的程序,尝试了无数次,就是不对,后来,我发现,原因是,在那个IDE(visual age for java, eclipse的前身)里面的默认字体下,0和O分不清。
回复  

使用道具 举报

10#
发表于 9-8-2010 21:45:43 | 只看该作者
以前做汇编的时候,读某个端口的值经常有错误,Debug 一个礼拜找不出原因,后来硬件工程师发现是主板线路没有做好,换了个主板就好了。吐血到死啊
回复  

使用道具 举报

11#
发表于 9-8-2010 22:07:50 | 只看该作者
bug的弱智程度和解决它花掉的时间成正比...

据说pair programming可以解决这个问题
回复  

使用道具 举报

12#
 楼主| 发表于 9-8-2010 22:17:58 | 只看该作者

回复 #10 lol 的帖子

我碰到过类似的情况,以前做一个很简单的电路板,布线还偷懒用Altium Designer自动布线的,而且线的间距就设了一个很小的值,因为在电脑上看这个间距比实际大很多,当时也是没经验。

结果做出来之后输出是随机的,时好时不好,拿到专门做电路的同学那里debug了半天,确诊是我的板子布线水平太烂所致。
回复  

使用道具 举报

13#
发表于 9-8-2010 22:23:19 | 只看该作者
良好的模块结构也能减少这种错误。比如楼主不是把数据直接输出,而是封装起来,这样就可以把先查看数据是否准确,再查看输出是否正常。
其实这就是MVC的最基本思想,加上必要的边界测试、特值测试,debug时间可以少很多。

当然,弱智的问题是经常的,多休息,多看美女会减少这种问题的发生。

回复  

使用道具 举报

14#
发表于 9-8-2010 22:32:23 | 只看该作者

回复 #13 key 的帖子

我同事解决这种问题的办法是,把我叫过去跟我讲解这个问题,blah,blah...
然后我还没搞懂什么状况呢,他就说谢谢你,我知道是什么问题了...
回复  

使用道具 举报

15#
 楼主| 发表于 9-8-2010 23:50:35 | 只看该作者

回复 #14 ritz 的帖子

是啊,很有道理的,我当时一头雾水的时候也想找人讨论一下究竟怎么回事,但是我一个人在家里呢,没人和我讨论啊
回复  

使用道具 举报

16#
发表于 10-8-2010 10:47:35 | 只看该作者
原帖由 ritz 于 9-8-2010 22:32 发表
我同事解决这种问题的办法是,把我叫过去跟我讲解这个问题,blah,blah...
然后我还没搞懂什么状况呢,他就说谢谢你,我知道是什么问题了...


呵呵,这种情况太普遍了:)

结对编程,他山之石...

往往你把你的思路说一遍,他提几个问题...然后你就灵光一闪,我知道怎么回事了!

最后当你激动地握着他的手道谢时,他都不知道你谢他啥:)
回复  

使用道具 举报

17#
发表于 10-8-2010 15:01:20 | 只看该作者
原帖由 hoopoos 于 9-8-2010 16:20 发表
许多年以前,有一次我debug一个workflow的程序,尝试了无数次,就是不对,后来,我发现,原因是,在那个IDE(visual age for java, eclipse的前身)里面的默认字体下,0和O分不清。


好像在Java Puzzlers Traps Pitfalls and Corner Cases这本书里面有讲到这个,另外最好不要用小写的l(L)。
回复  

使用道具 举报

18#
发表于 10-8-2010 15:34:15 | 只看该作者
我不用下面几个字母:
i
l
o(少用,不是完全不用)

比如for(int i...)我一般会写成:for(int k...),
如果你见到有一套代码全部写成for(int k...),这套代码很有可能是我写的。
我不写 i ,主要倒不是在电脑上怎样怎样,而是我用笔把代码写出来时,这个 i 很让我头痛。

原帖由 felix100 于 10-8-2010 15:01 发表


好像在Java Puzzlers Traps Pitfalls and Corner Cases这本书里面有讲到这个,另外最好不要用小写的l(L)。

评分

参与人数 2威望 +35 收起 理由
z37214728 + 5 谢谢分享!
coredump + 30 好习惯

查看全部评分

回复  

使用道具 举报

19#
发表于 10-8-2010 16:15:57 | 只看该作者
原帖由 key 于 10-8-2010 15:34 发表
我不用下面几个字母:
i
l
o(少用,不是完全不用)

比如for(int i...)我一般会写成:for(int k...),
如果你见到有一套代码全部写成for(int k...),这套代码很有可能是我写的。
我不写 i ,主要倒不是在电脑 ...

C++我一般用it代替i, QT下直接用foreach了就,更省事
回复  

使用道具 举报

20#
发表于 10-8-2010 16:21:51 | 只看该作者
我坚持使用i
回复  

使用道具 举报

21#
发表于 10-8-2010 16:27:55 | 只看该作者
原帖由 lufumin1832 于 10-8-2010 16:21 发表
我坚持使用i
和乔布斯个性符合,可以去Apple面试了[size=13.8889px]
回复  

使用道具 举报

22#
发表于 10-8-2010 16:40:54 | 只看该作者
阅,同意!

原帖由 coredump 于 10-8-2010 16:27 发表
和乔布斯个性符合,可以去Apple面试了
回复  

使用道具 举报

23#
发表于 10-8-2010 16:47:44 | 只看该作者
就用一个i,不至于。

我的顺序i j k
回复  

使用道具 举报

24#
发表于 10-8-2010 22:07:57 | 只看该作者

回复 #15 dark008 的帖子

Pragmatic Programmer里面提过一种方法,就是放只橡皮鸭子在桌面,向它解释你的问题
http://c2.com/cgi/wiki?RubberDucking

评分

参与人数 2威望 +60 收起 理由
key + 30 谢谢分享!
coredump + 30 你太搞笑了!

查看全部评分

回复  

使用道具 举报

25#
发表于 10-8-2010 22:28:07 | 只看该作者
原帖由 key 于 10-8-2010 15:34 发表
我不写 i ,主要倒不是在电脑上怎样怎样,而是我用笔把代码写出来时,这个 i 很让我头痛。


好奇,你为什么要用笔把代码写出来?
我是传统的i,j,m,n
回复  

使用道具 举报

26#
发表于 10-8-2010 23:13:19 | 只看该作者
原帖由 ritz 于 10-8-2010 22:07 发表
Pragmatic Programmer里面提过一种方法,就是放只橡皮鸭子在桌面,向它解释你的问题
http://c2.com/cgi/wiki?RubberDucking

我们经常这样情景模拟。比如说 Server为Mr. Server, Client 为Ms. Client

Mr. Server , please give me ....when.... where
回复  

使用道具 举报

27#
发表于 11-8-2010 10:32:16 | 只看该作者
谢谢!

原帖由 ritz 于 10-8-2010 22:07 发表
Pragmatic Programmer里面提过一种方法,就是放只橡皮鸭子在桌面,向它解释你的问题
http://c2.com/cgi/wiki?RubberDucking
回复  

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+10, 12-8-2025 14:36 , Processed in 0.064474 second(s), 46 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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