《送给初学者的五个调试小技巧》

1.你很可能“拼写错误”

嘿嘿,有的小伙伴心里肯定想“怎么把这种编译器都能查出的东西放在第一个?没水准!”。我这里的这个拼写错误并不是环境能自动查出的对象名称或者关键字有误,而是你自己定义了多个类型相同而且名称相似的对象后,在使用时用错了。这种情况,在有拼写提示的环境里更容易发生,而且很难察觉。

怎么解决这种问题呢?当然在敲得时候注意一下检查是最好的了,源头上便可以解决。如果在调试时出现诸如:属性怪异、数组长度怪异、异常报出的行数外层有其它关键对象时可以通过“监视”逐一排除的方式进行盘查,便很有可能解决这种问题。

2.异常不仅要大胆捕获还要大胆跟进

在C++程序调试时很容易出现程序无法进行下去的异常,一定要跟进底层去看堆栈的异常,这样即便你不了解底层的机理也可以多为你提供一些问题的特征。

另外,try catch 语句块的滥用是对程序的不负责任。异常的抛出必须是上一层可以解决,否则危害整体,对整个软件造成难以估量的影响。

3.你需要手写“关联清单”

当我们的异常信息为我们指出我们的错误,却又让我们感觉出错的地方不明确的时候,你需要手写出所有涉及的对象、数组。这可不是犯傻,而是为了头脑清晰,很多情况下监控的“对象们”并不一定是出错的地方,但是通过你冷静地一遍书写之后,很可能灵光一现,觉察到可能关联慎密的其它变量。

4.一图胜千言,一表永流传

画图解决问题是我在学习数据结构时获得的经验,很多情况下,越是复杂、特别的数据结构越是要自己动手画一画来思考问题出现在什么地方。另外,在画图的过程中你还很可能想到完善这个结构的方案,因为你面对的不是冷冰冰的代码而是活灵活现的图纸。

表格是我们解决问题的又一利器,小伙伴们知道在我们的VS2010中调试的时候总会出现各种变量的动态,这往往让我们非常愉快。但是有的时候我们却要自己画一画小表格,当然不是做这种监视的工作,而是帮助我们分析多属性多功能的对象,我们可以通过类似UML的书写对该对象逐一排除不需要进行“升级”的地方。

5.要坚持不懈,死磕到底。更要善于交流,发散思维。

很多同志都有这样的经验“对待bug一定要严惩而后快,绝不姑息!”这当然是非常对的,这有助于我们的程序越来越好。但是我们解决这种入世的事要有一颗出世的心呀,我们很容易在急躁的时候陷入某一种解决方案里,而且这种解决方案很有可能是那种初期略见成效,而后愈发捉襟见肘的类型。所以当我们出现一个问题时,先不要急着大动干戈,尝试着听听各路英雄的见解,在一种方法尝试有很大失败之可能就启动另一方案,押宝的行为很不可取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值