【发布时间】:2011-11-20 01:55:45
【问题描述】:
在我最近与经理的一次讨论中,他提到他的一位前客户使用 C++ 宏来记录有关每一行代码的信息。他们所要做的就是在开始运行之前启用一个环境变量。 (当然,环境变量是在测试台中单独启用的。
日志也提到了使用的变量及其对应的值。 例如,对于该行:
a = a + b;
日志会这样写:
"a = a + b; (a = 5 + 3)"
就我个人而言,我不确定这是否可能,但他非常确定这已经存在,尽管他不记得代码的细节。
所以,这是一个(显而易见的)问题:这可能吗?你能提供这个的代码吗?
【问题讨论】:
-
在您的问题中,我为日志消息加上双引号(以表明它是日志消息)。希望没事。
-
没有像 C++ 宏这样的东西,这对于普通的 C 预处理器宏当然是不可能的。必须有其他工具生成值字符串。
-
我认为不可能记录像“a = a + b”这样的裸行,但是可以在像“LOG(a = a + b)”这样的行中使用宏,并且断言宏已经在这样做了。
-
这可能提供什么价值?当然最好在调试器中运行以获取此信息...
-
我认为编写一个将每一行代码放在 LOG() 宏之间的自定义预处理器并不难