您的位置:首页 > 编程语言

代码调试遇到的问题

2015-02-02 22:38 344 查看
理解和使用是两码事

第一个错误是关于stl的,写程序的过程中,总是期望用最小的代价获得最大的收益,

效率低下的代码是不能忍受的,但有时容易陷入极端,这个问题根源在于迭代器

失效, 为了一个锁,以为安全的,没有注意到。还有一个问题,deque的所以插入和

删除操作都会导致迭代器失效。

第二个问题是关于死锁的,写了几年的代码第一次遇到这个问题,就像刚工作的时候专家(老大)

问我,有没有遇到比较严重的内存错误,当时傻乎乎说没有。问题是客观存在的,没有的原因在于

系统没有那么复杂。前段时间刚刚调试了内存泄露的问题,重载了operate new操作符,调试了每一个

模块,没有发现问题,于是把目光转向了stl,终于发现一个无效的内存,导致vector不停的push。

这次死锁,在于想在信号量唤醒之后保存一个状态,这个状态记录了唤醒的来源,于是内部加了一个锁,

导致了死锁。解决完这个问题后一阵后怕,感觉能够快速解决,根本原因在于一直坚守的完善的log记录,

最初工作的时候总是喜欢debug调试,在代码比较少业务简单的情况下或许可以,但在系统复杂的情况

下就没那么有效了,log是定位逻辑错误的最有效的手段,前提是打的有技巧。

目前实现的模块是基于一系列的目标,制定时间,添加时间段,推到执行模块按序执行的一种机制。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: