`
xitong
  • 浏览: 6191044 次
文章分类
社区版块
存档分类
最新评论

TRACE宏的使用方法

 
阅读更多

TRACE宏对于VC下程序调试来说是很有用的东西,有着类似printf的功能;该宏仅仅在程序的DEBUG版本中出现,当RELEASE的时候该宏就完全消失了,从而帮助你调试也在RELEASE的时候减少代码量。
使用非常简单,格式如下:
TRACE("DDDDDDDDDDD");
TRACE("wewe%d",333);
同样还存在TRACE0,TRACE1,TRACE2。。。分别对应0,1,2。。个参数
TRACE信息输出到VC IDE环境的输出窗口(该窗口是你编译项目出错提示的那个窗口),但仅限于你在VC中运行你的DEBUG版本的程序。
TRACE信息还可以使用DEBUGVIEW来捕获到。这种情况下,你不能在VC的IDE环境中运行你的程序,而将BUILD好的DEBUG版本的程序单独运行,这个时候可以在DEBUGVIEW的窗口看到DEBUGVIE格式的输出了。
VC中TRACE的用法有以下四种:
1:
TRACE ,就是不带动态参数输出字符串, 类似C的printf("输出字符串");

2:
TRACE 中的字符串可以带一个参数输出 , 类似C的printf("...%d",变量);

3:
TRACE 可以带两个参数输出,类似C的printf("...%d...%f",变量1,变量2);

4:
TRACE 可以带三个参数输出,类似C的printf("...%d,%d,%d",变量1,变量2,变量3);
TRACE 宏有点象我们以前在C语言中用的Printf函数,使程序在运行过程中输出一些调试信息,使我们能了解程序的一些状态。但有一点不同的是:

TRACE 宏只有在调试状态下才有所输出,而以前用的Printf 函数在任何情况下都有输出。和Printf 函数一样,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 );

也可以使用OutputDebugString来调试。

OutputDebugString
OutputDebugString
OutputDebugString
OutputDebugString

分享到:
评论

相关推荐

    MFC trace实现

    (五)关于trace宏使能设置: 1.默认情况下 NO_TRACE_WINDOW 和 TRACE_WINDOW都没定义,则 DEBUG版本会输出调试字符串,而Release版本不会 2.如果开头定义了#define NO_TRACE_WINDOW DEBUG版本和Release版本都...

    非MFC程序调示宏TRACE().zip

    如果不是MFC项目或者ATL的项目的话是不能使用这个宏的。这时有一个没有什么额外消耗的办法能够做到向调试输出窗口输出。 非MFC程序显示调示信息,自写TRACE()打印输出的VS的输出窗口。用法和printf()一样。 一个...

    J-TRACE/ETM

    STM32 IAR环境下使用J-TRACE进行调试跟踪。指令跟踪,需要通过可选的嵌入式跟踪宏单元(ETM),本文描述了ETM 使用方法,并提供了源码。

    MFC 中 TRACE 详细介绍

    TRACE宏对于VC下程序调试来说是很有用的东西,有着类似printf的功能;该宏仅仅在程序的DEBUG版本中出现,当RELEASE的时候该宏就完全消息了,从而帮助你调式也在RELEASE的时候减少代码量

    release 下trace工具

    和TRACE一样用XTRACE 如果在发行程序时,想去掉这些附加的代码,无须删除XTRACE和#include"xTrace.h"语句,只需要在工程设置中定义NO_XTRACE宏即可,这样xTrace.h文件则犹如一个空文件一般,可执行程序中便没有任何...

    trace:用于跟踪函数执行的Rust过程宏

    用于跟踪功能执行的过程宏。 在函数, mod或impl的顶部添加#[trace]将插入println! 受影响的函数的开头和结尾的语句,通知您何时进入和退出该函数以及打印参数和返回值。 有助于快速调试是否实际调用了应该被调用...

    tools.trace, 1.3更新 clojure.contrib.trace.zip

    tools.trace, 1.3更新 clojure.contrib.trace clojure.tools....定义跟踪宏/fns以帮助你查看代码正在执行的操作。以前称为 clojure.contrib.trace 。请参阅 tools.trace API参考代码。发布和依赖信息

    TRACE 的小程序,可以记日志

    写了一个TRACE的小程序,用来打印信息和记录日志。 可以编译Debug版和Release版。 用到了一些宏和VA的知识。 如果想要一起研究,可以找我。 imzzq@hotmail.com

    PCAN-Explorer5基本使用方法new

    PCAN-Explorer5 基本使用方法,其中包括了PCAN-Explorer5的CAN网络的接入、硬件通讯、基于ID的报文过滤、导入并使用DBC文件,trace的基本使用,宏的使用和说明

    非MFC TRACE

    游戏制作已经开始采用C++了,却鲜有人选择使用MFC。但笔者觉得的 ASSERT(),VERIFY()和 TRACE()这几个宏很好用。所以就想自己写一个版本来适应Windows平台下不同的工程类型。

    assert,assert_valid,verify,trace用法

    对于开始学vc的人,对于assert,assert_valid,verify,trace的宏感到很奇怪,总是觉得很难掌握似的,其实这些主要是没有理清楚他们各自宏之间深层次的意义。

    VC内存泄漏检测及TRACE方法

    用VC创建非MFC工程(例如不支持MFC的DLL),不支持MFC下经常用的TRACE、VERIFY等调试手段,对于内存泄漏也没有检测。其实C++本身是支持这些功能的,只是使用方式与MFC稍有区别。 将压缩包里面的文件解压到VC工程下,...

    scala-trace-debug:基于宏的打印调试。 在您的IDE中找到日志语句

    使用Scala中的编译时宏和Java中的运行时开关,scala-trace-debug使您的打印语句和断言比以往更容易定位。 使用它可以在源代码中附加“智能”超链接,从而避免“ grep”的需要,并通过将ENABLE_TRACE_DEBUG环境变量...

    tools.trace:1.3更新clojure.contrib.trace

    定义跟踪宏/ fns,以帮助您查看代码在做什么。 以前称为clojure.contrib.trace。 请参阅。发布和依赖项信息最新稳定版本:0.7.11依赖项信息: org.clojure/tools.trace { :mvn/version " 0.7.11 " } 依赖项信息: ...

    AppleTrace::red_apple:客观的C方法跟踪调用图

    苹果追踪 AppleTrace开发用于分析iOS上应用... 对于Objective C方法(无论是实例方法还是类方法),都有APTBegin和APTEnd宏以便于编码。 void anyKindsOfMethod{ APTBeginSection("process"); // some code APTEnd

    LED自由曲面匀光透镜的局部优化设计方法

    初始模型采用规则的二次曲线代替自由曲线,通过对TracePro软件中的Scheme编程语言和优化引擎的结合使用,对匀光透镜进行局部优化设计,最终实现了LED均匀照明。结果表明:当光源为1 mm×1 mm朗伯体发光的LED时,可以...

    VC++高级编程.chm

    2.1 TRACE 宏的利用 2.2 ASSERT宏的利用 2.3 ASSERT_VALID宏的利用以及类的AssertValid()成员函的重载 2.4对象的DUMP函数的利用 3 内存漏洞的检查 五Visual C++与多媒体 1 对声音的处理 1.1媒体...

    VisualC 深入内幕编程.rar

    2.1 TRACE 宏的利用 73 2.2 ASSERT宏的利用 74 2.3 ASSERT_VALID宏的利用以及类的AssertValid()成员函的重载 74 2.4对象的DUMP函数的利用 74 3 内存漏洞的检查 75 五VISUAL C 与多媒体 77 1 对声音的处理 77 ...

    VC深入内幕编程电子书

    2.1 TRACE 宏的利用 73 2.2 ASSERT宏的利用 74 2.3 ASSERT_VALID宏的利用以及类的AssertValid()成员函的重载 74 2.4对象的DUMP函数的利用 74 3 内存漏洞的检查 75 五VISUAL C++与多媒体 77 1 对声音的处理 77 1.1...

    vc++高级编程;vc++高级编程

    2.1 TRACE 宏的利用 * 2.2 ASSERT宏的利用 * 2.3 ASSERT_VALID宏的利用以及类的AssertValid()成员函的重载 * 2.4对象的DUMP函数的利用 * 3 内存漏洞的检查 * 五Visual C++与多媒体 * 1 对声音的处理 * 1.1...

Global site tag (gtag.js) - Google Analytics