1
guotie 2012-07-18 17:38:21 +08:00
gdb
|
2
jamiesun 2012-07-24 20:40:22 +08:00
print
|
3
yelusiku 2012-07-24 22:05:53 +08:00
楼主的博客要密码?
|
4
sampeng 2012-07-24 22:46:05 +08:00
print解决99%的问题。debug日志位来解决运行时的潜在bug。。
|
6
sampeng 2012-07-24 22:46:49 +08:00 1
楼主丢个要密码的博客。。让我们情何以堪。。。
|
7
xuwenhao 2012-07-24 22:57:32 +08:00
基本不调试,靠test case和log解决问题
|
9
loading 2012-07-25 09:33:50 +08:00
print
|
10
soulhacker 2012-07-25 10:53:20 +08:00
调试重于开发是个什么理论呀……
|
11
aa88kk 2012-07-25 12:00:24 +08:00
很多年前国内有这么一说,程序是调试出来的。因为那时候软件开发还很落后,基本没有写测试用例的习惯,所以调试要比现在重要。看过一篇国外的一篇技术文章,作者采访了几位知名的技术大牛,发现他们找错通常也是print先。
|
12
wangkangluo1 OP @sampeng 由于涉及到sony内部一些资料,暂时只能加密,有时间修改后再放出
|
13
wangkangluo1 OP @guotie 项目一大 ,性能要求高,gdb就派不上用场了
|
14
wangkangluo1 OP @jamiesun 你都不知道逻辑,原始代码都没有printf输出,如何加printf?
|
15
fly2never 2012-07-25 17:07:24 +08:00
@wangkangluo1 那就把链接删掉吧,每个看帖子的人点击一遍结果看不了,这不是浪费大家时间么
|
16
bananaPig 2012-07-25 17:10:54 +08:00
幼稚
|
17
xuwenhao 2012-07-26 12:02:06 +08:00
@fly2never 不太会调试,而且如果是分布式程序的话也没办法调试,现在唯一调试类的工作是用Profiler定位性能问题和Memory Leak,功能性问题没有什么调试的必要了
|
18
jamiesun 2012-07-26 21:13:05 +08:00
对于有异常处理支持的语言,尽可能的利用异常是比较好的,举个python的例子吧,比如string.index 找不到就抛异常,比如大多数时候字典 dict[key]就比dict.get(key)更有用,让异常更早的把问题暴露出来,而不是隐藏掉,使用断言 assert 这些远比GDB有用,gdb会造成强迫症,一点小小的东西就gdb。
print,logging,assert使用多了,你甚至直接猜到问题所在了。 c比较特殊,缺少一些流行高级语言的特性,比较痛苦。 尽可能的做到更严谨,减少不必要的调试。 |
19
darklowly 2012-07-26 21:53:12 +08:00
@wangkangluo1 你都不知道逻辑,原始代码都没有printf输出,如何加printf?------>这种工作,在开发中,一般不会发生,有点类似于逆向的工作。
|
20
darklowly 2012-07-26 22:00:57 +08:00
|
21
myrual 2012-07-27 10:00:45 +08:00
直白的说,这仅仅表明设计和实现能力很差。
以我过去10年与单片机和各种嵌入式设备打交道的经验来说,最忌讳写1000行代码,然后写到设备上看效果,发现有问题再debug。 合理的方案是多次迭代,写50行代码,验证一下,再50行,再验证。 随着越来越多的代码得到验证,对于进度的预期也越来越准确。 |
22
dreampuf 2012-07-27 11:10:45 +08:00
1. 单步调试没法复用,不保值
2. 单步调试比设置Log的要求更低,更容易发生在不理解的情况下的修改 3. 非本机错误,很难(带价很高)调试 |
23
uniy 2012-07-27 12:29:46 +08:00
调试真的很重要
|