程序开发,很大一部分的时间是用于调试,调试也是一门值得了解的学科,我这总结一般调试手段:
- 加日志
- 加断言
- 代码调试
- 调试core文件
加日志
这个就无需赘言了,你怀疑哪个地方,或者在出现问题的时候,需要知道哪个地方有问题,那么日志肯定是少不了的,而且这个也是最基本的,适用于所有语言。
但是经验来看,加日志属于事后,或者是预判,不是很灵活,因为总有你没想到的地方,所以我们发现,做程序开发,在排查线上问题的时候,总会抱怨其他程序员没有加日志。关键还是在于计划赶不上变化。
日志是必须的,但是只靠日志,在某些场景还是没法解决问题的:
- 你不知道哪个地方出了问题,你只能在怀疑的地方又加日志
- 每次加日志,你肯定得改代码,如果是编译型语言你还得重新打包,慢
- 加了日志之后,发现打印出的信息还是太少,返回去又搞一遍,返工
加断言
这个在 c 语言开发里经常看见,通常是你认为绝对的一段代码逻辑,直接断言,或者在排查问题的时候,怀疑某一个地方,那么加一个断言,这个本质逻辑就是:如果代码走到我怀疑的地方,那么就证明了我某些推论,断言之后,还可以留下内存 core 文件,以便调试。
调试core文件
这个是c/c+