c++调试技巧

本文总结了C++编程中遇到bug时的调试技巧,包括如何重现bug、调试可重复和不可重复的bug,以及解决内存问题的方法。强调了使用调试器的重要性,同时提出了防止内存错误的实践策略,如正确匹配new和delete,避免缓冲区溢出,以及始终初始化和管理指针。
摘要由CSDN通过智能技术生成

看书的时候,结合自己不足一年的编程经验,写出来的一个还算是比较基础的c++调试经验的总结。


1、重现bug
要重现bug,首先采用与bug第一次出现时完全相同的输入。注意不要只执行触发操作,因为bug 可能是由整个操作序列产生的。

当能一致地重现这个bug时,应尝试找出触发这个bug的最小序列代码,可以从仅包含触发操作的最小序列开始,然后慢慢扩大至覆盖启动时的完整序列代码,直到bug被触发时。–> 这会得到重现这个bug的最简单高效的测试用例。


2、调可重复的bug

目标是找到触发这个问题的准确的代码行。
1)记录调试信息,通过观察调试信息来判断bug出现的地点。不过若手边有一个现成的调试器,不建议加上调试信息,因为调试信息的修改与还原比较麻烦
2)直接使用调试器来进行调试,附上gdb的调试的一篇转文。(此处已经默认读者可以熟练使用调试器的基本操作)


3、调不可重复的bug

这种bug的调试非常困难,因为很难重现bug出现时的情景(只能使用自己的经验进行大胆的猜测)。。。所以调试这种bug,手边没有什么特别厉害的调试工具时,只能够通过检查代码来发现问题,不过有趣的时,这种方法时时也竟会比较有效。因为我们带着刚才发生bug的视角再来重新审视一遍代码时,往往会有很大可能发现出问题所在。
不过,我们在这里并不建议长时间盯着代码看ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值