如何在c ++中调用TRACE?请用这个简单的代码解释一下
int x = 1;
int y = 16;
float z = 32.0;
TRACE( "This is a TRACE statement\n" );
TRACE( "The value of x is %d\n", x );
TRACE( "x = %d and y = %d\n", x, y );
TRACE( "x = %d and y = %x and z = %f\n", x, y, z );
Run Code Online (Sandbox Code Playgroud)
如果您的意思是"我如何跟踪代码的执行路径?" 然后,您需要使用源级符号调试器.
在Linux中,这通常意味着使用GDB,其中有许多GUI前端; 在命令行上使用GDB是神秘而费力的,例如,它可以通过Eclipse或KDevelop或独立的Insight调试器使用.在Windows中,调试器将特定于编译器,但VC++具有可用的最佳调试器(并且在Express Edition中是免费的).
响应davit的编辑
因此定义TRACE宏:
#if defined NDEBUG
#define TRACE( format, ... )
#else
#define TRACE( format, ... ) printf( "%s::%s(%d)" format, __FILE__, __FUNCTION__, __LINE__, __VA_ARGS__ )
#endif
Run Code Online (Sandbox Code Playgroud)
请注意,之间缺少逗号"%s::%s(%d)"并且format是故意的.它打印一个带有源位置的格式化字符串.我在实时嵌入式系统中工作,所以我经常在输出中也包含一个时间戳.
| 归档时间: |
|
| 查看次数: |
6585 次 |
| 最近记录: |