gpt4 book ai didi

c - 如何实现分级调试系统?

转载 作者:太空狗 更新时间:2023-10-29 15:56:23 27 4
gpt4 key购买 nike

根据设计,在我现在工作的环境中,我无法使用调试器来尝试检测错误,所以几乎总是在我需要调试功能时,我最终会输出一些信息。

为此,我做了以下工作:

#ifdef DEBUG
#define printd(x) printf x
#else
#define printd(x)
#endif

所以当我需要打印一些调试信息时,我使用 printd() 而不是 printf()

我发现的问题是我需要一个分级系统,有些消息在确定的调试级别中可能很重要,但在调试代码的其他部分时却无关紧要。

所以我的问题是,如何实现分级调试系统?我重视简单性,我的意思是,我更喜欢我的实际系统,而不是在使用它时需要大量代码或困惑的代码。像 printd(level, format, ...) 这样的东西会很棒。

最佳答案

当然,还有更优雅的方法来做到这一点,当然,但这工作得很好

#ifdef DEBUG
extern int g_debuglevel;
#define printd(level, x) (level <= g_debuglevel) ? 0 : printf x
#else
#define printd(level, x)
#endif

虽然我个人更喜欢这个

#ifdef DEBUG
extern void printdf(level, fmt, ...);
#define printd printfd
#else
#define printd
#endif

其中 printdf 是一个测试级别的函数,然后调用传递 fmt 和 va_args 的 vprintf

关于c - 如何实现分级调试系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2181451/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com