如何编写可调试自诊断代码?

本文讨论了在程序开发中如何有效地进行调试和诊断,包括错误日志记录、调试宏的使用、断言的策略。建议区分错误日志和跟踪日志,自定义调试宏以提高错误定位效率,并提供了具体的宏定义示例,强调断言应用于检查代码中的bug,而错误处理用于处理预期的异常情况。
摘要由CSDN通过智能技术生成

调试:用于程序开发时的系统行为修正,排除系统行为的缺陷,实现我们预期的功能
诊断:用于程序运行时的系统异常定位,判定系统对异常行为的响应,以便于采取措施实施治疗和规避 

通常情况下,我们会在程序中就异常、错误情况进行处理,我们将错误信息记入日志,以便于进行跟踪和
判别。

调试问题:

1 打印模块错误,拷贝粘贴的结果

  解决办法:不用手工输入
2 打印级别混乱 :
  程序异常和处理错误不分开
  解决办法:简化打印级别,分异常,错误,调试
3 打印缺失:很多地方只返回FALSE,但是无任何打印,有的不对返回值进行判断
  解决办法:增加
4 不规范,存在个性化的打印

跟踪问题:

1 冗余打印:

2 信息却失

3  错误分支缺失

解决?

1 跟踪宏
2 为工程定制诊断日志
3 区分错误日志和跟踪日志

从标准的c++assert宏ASSERT,trace宏,

致命错误日志,向日志进程发送异常日志,控制程序的各种版本,在发生异常时,不允许中止服务器进程,
传统宏的功能:仅限于输入参数的检测

可定制更多宏在程序开发的早期捕获更多的错误,称为自诊断功能

分清楚非预期的错误和预期的错误,
调试宏集:
容易使用的函数和宏,语义清晰
错误报告发送至文件或调试控制台
宏可以关闭和打开,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值