代码调试遇到的问题

理解和使用是两码事

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

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

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

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

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

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

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

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

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

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

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

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

目前实现的模块是基于一系列的目标,制定时间,添加时间段,推到执行模块按序执行的一种机制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值