解决不可思议的问题

 

1.同事给我一个工程,还没有clean就直接运行了,在调试的过程序中,竟然发现无法查看堆栈里的变量值。这个情况让我觉得很不可思议,第一感觉就是这不合理,无法解释。问了一下同事,他把那个工程给rebuild一下。问题解决了。

2.我用emacs调试用C语言写的一个工程,单步的时候总会出现一些问题------单步总不是一步一步走,有时个走两行,有时候后退走。给我调试程序带来很多不爽。后来无意中看到gcc的文档里说到使用-O优化程序和-g调试信息会冲突。我把-O去掉,发现问题解释了。

 

以上的情况有很多。在这些情况下,我一味地抱怨“超越常理”,想当然,没有主动思考,没有发挥想象力,没有发散思维。在这些“超越常理”的难题面前就束手无策。实际上,这是一种头脑的惰性,也是一种惯性。一定要克服这种惰性,遇到难题时先不要问别人,要先问问自己。首先,要有一个信念,让自己相信一定是某个地方出错了,而不是什么“超越常理”的事;第二,想想以前有什么经验可以解决这种问题;第三,要发挥想象力,不要太过依赖经验,很多自己无法解释的事情,但却是千真万确的。

对于一个工程,如果出现了无法解释的事情,千万不要急,要知道程序是人写出来的,所以一定是可以解释的,只是自己还不能解释而已。可以试着做一个小的测试程序,或者执行make clean,让一切都回到正确的地方,一步一步走下去,也许就能找到出错的理由。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值