Tag: 日志

如何在C程序中将日志记录逻辑与业务逻辑分开? 在C ++中?

我目前正在用C编码,我有很多printfs,所以我可以在某些时候跟踪我的应用程序的流程。 问题是有时我想要比其他人更多的细节,所以我通常花时间评论/取消注释我的C代码,所以我可以获得适当的输出。 使用Java或C#时,我通常可以使用Aspects将我的实现代码与日志记录逻辑分开。 你在C中使用了类似的技术来解决这个问题吗? 我知道我可以放置一个名为DEBUG的标志,可以打开或关闭,所以每次我想要显示或隐藏printfs时,我都不必全身心地评论/取消注释我的整个代码。 问题是我还想摆脱代码中的日志记录逻辑。 如果用C ++编写代码而不是CI,它会更好吗? 编辑 似乎有一个AspectC ++,所以对于C ++似乎有一个解决方案。 那C怎么样? 谢谢

自动将进入/退出function日志添加到项目

我有第三方源代码,我必须调查。 我想知道调用函数的顺序,但我不想浪费时间输入: printf(“Entered into %s”, __FUNCTION__) 和 printf(“Exited from %s”, __FUNCTION__) 对于每个function,我也不想触摸任何源文件。 你有什么建议吗? 是否有一个编译器标志可以自动为我执行此操作? 澄清评论: 我将交叉编译源代码以在ARM上运行它。 我将用gcc编译它。 我不想分析静态代码。 我想跟踪运行时。 所以doxygen不会让我的生活更轻松。 我有源,我可以编译它。 我不想使用面向方面编程。 编辑:我发现gdb提示符中的’frame’命令在那个时间点打印当前帧(或者,你可以说是函数名)。 也许,每次调用函数时,都可以(使用gdb脚本)调用’frame’命令。 你怎么看?