8-8程序调试的debug宏

本文介绍了程序调试的多种方法,包括单步调试、硬件调试、printf和log文件。强调了调试信息适量的重要性,并详细阐述了DEBUG与RELEASE版本的区别。深入探讨了DEBUG宏的工作原理,即通过条件编译控制调试信息的输出。最后,分析了DEBUG宏在应用程序和内核中的应用,提到了预定义宏和C语言的变参特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

8.8.1 程序调试的常见方案:单步调试、裸机LED调试、打印信息、log文件

(1)利用调试器进行单步调试(譬如IDE中,Jlink)适用于新手,最大的好处就是直观,能够帮助找到问题。缺点是限制性大、速度慢。
(2)裸机使用LED、蜂鸣器等硬件调试,适合单片机裸机程序;
(3)printf函数打印调试,比较常用,作为程序员必须学会打印调试。好处是具有普遍性,几乎在所有的情况下都能用。
(4)log文件(日志文件)是系统运行过程中在特定的时候打印一些调试信息,日志文件记录下来这些调试信息以后以供后续查找追查问题。适合于系统级或者大型程序的调试。

8.8.2 打印信息不能太多也不能太少

(1)调试信息太少不够信息找到问题所在。
(2)调试信息太多会有大量的无用的信息淹没有用的信息,导致有用信息无法看见,等于没有。

8.8.3 调试(DEBUG)版本和发行(RELEASE)版本的区别

(1)DEBUG版本就是包含了调试信息输出的版本,在程序测试过程中会发布debug版本,这种版本的程序运行时会打印出来调试信息/log文件,这些信息可以辅助测试人员判断程序的问题所在。DEBUG版本的坏处是输出调试信息占用了系统资源,拖慢了系统运行速度。因此DEBUG版本的性能低于RELEASE版本。
(2)RELEASE版本就是最终的发布版本,相较于DEBUG版本的功能代码是一样的,但是去掉了所有的调试信息。适合最终测试通过要发布的程序,因为去掉了调试信息所以程序的运行效率要更高。
(3)DEBUG和RELEASE版本其实是一套源代码。源代码中是有很多的打印调试信息的语句的,如何来控制生成DEBUG和RELEASE版本?靠条件编译,靠一个宏。

8.8.4 debug宏的实现原理

(1)DEBUG宏大概的原理是:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非主流的豆瓣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值