cdebug
是一个小巧的C/Objective-C调试工具
cdebug
设计为允许C/Objective-C开发者通过单个文件启用调试模式日志/断言。
- 可以通过调试宏'
DEBUG
'轻松启用/禁用功能 - 条件日志、带日志的断言
请参阅[GitHub]上的文档(http://youknowone.github.com/cdebug)
如何设置
为了利用此功能,请执行以下操作之一
- 插入 #define DEBUG 1
- 添加编译器选项 -DDEBUG
为了强制禁用此功能而不删除'DEBUG'宏,设置NO_DEBUG
功能
dprintf
dprintf是printf的浅层包装。
dprintf通过选项插入文件名、行号、时间戳、换行符。
dlog
dlog是一个带有测试的dprintf。
dlog仅在第一个参数条件通过测试时触发。例如
- #define LOG_ERROR 3
- 定义宏:LOG_WARNING 为 2
- 定义宏:LOG_INFO 为 1
- 当 DEBUG_LOGLEVEL 小于 DEBUG_WARNING 时,将触发 dlog(LOG_WARNING, "Warn!");
这只会触发,如果 DEBUG_LOGLEVEL 小于 DEBUG_WARNING。
可以重新定义测试。查看选项中的 DEBUG_LOGTEST。
dassert
dassert 是 assert 的浅包装。
仅在调试模式下触发 dassert。对于发布模式,请使用原始的 'assert'。
dassertlog
当条件为假时,dassertlog 将触发 dprintf 和 dassert。
options
如果你不喜欢默认设置,可以定义选项。
- DEBUG_WITH_FILE 用于启用 __FILE__ 宏(默认:启用)
- DEBUG_WITH_LINE 用于启用 __LINE__ 宏(默认:启用)
- DEBUG_WITH_TIME 用于启用运行时时间戳(默认:启用)
- DEBUG_NEWLINE 用于启用插入换行符(默认:启用)
- DEBUG_LOGLEVEL 定义 dlog 触发级别(默认:启用)
- DEBUG_LOGTEST(LV) 定义 dlog 触发测试。 (默认:LV >= DEBUG_LOGLEVEL)
- DEBUG_ASSERT 用于在 dassert 中启用真正的 assert(默认:启用)
- DEBUG_PRINTF 定义 printf 函数(默认:stdio.h 中的 printf)
- DEBUG_USE_NSLOG 用于启用在 objective-c 语境中自动化的 NSLog 标志(默认:启用)