Click here to Skip to main content
13,000,164 members (60,175 online)
Click here to Skip to main content
Add your own
alternative version


32 bookmarked
Posted 3 Oct 2000

Simple trace format tips

, 4 Oct 2000
Rate this:
Please Sign up or sign in to vote.
A simple way to format your TRACE statements so double clicking takes you directly to the source code.
<!-- Link to demo file download -->
  • Download demo project - 6 Kb
  • <!-- Add the rest of your HTML here -->


    When writing TRACE statements to the output window in DevStudio it is often useful to be able to go directly to the section of code that produced the TRACE output. Doing this is simple - you just use the __FILE__ and __LINE__ macros in your TRACE statements.

    If you format your TRACE statement as follows:

    TRACE(_T("%s(%i) : Please double click on me!\n"), __FILE__,__LINE__);

    then you can double click on the TRACE output line and be taken directly to the line of code the produced the TRACE statement.

    An example of using this can be find in the enclosed example. Note that in the example I used the CDuration class by Laurent Guinnard.


    This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

    A list of licenses authors might use can be found here


    About the Author

    Audrius Vasiliauskas
    Technical Lead Doclogix
    Lithuania Lithuania
    No Biography provided

    You may also be interested in...

    Comments and Discussions

    GeneralDebug Logs Pin
    Paul Grew8-Feb-01 2:13
    memberPaul Grew8-Feb-01 2:13 
    GeneralThis (and more) has been a part of ATL/AUX for 2 years... Pin
    Andrew Nosenko9-Oct-00 11:15
    sussAndrew Nosenko9-Oct-00 11:15 
    GeneralI like it, but... Pin
    Paul Westcott5-Oct-00 6:52
    sussPaul Westcott5-Oct-00 6:52 
    GeneralHow to make it even shorter Pin
    Helmut Mülner5-Oct-00 22:31
    sussHelmut Mülner5-Oct-00 22:31 
    GeneralRe: How to make it even shorter Pin
    Paul Westcott6-Oct-00 5:24
    sussPaul Westcott6-Oct-00 5:24 
    G'day Helmut,

    Two problems with what you have suggested:

    1. you are replacing all TRACE statements with the altered function, which is not necessary what you want to do (such as in the sample project that Audrius sent:

    #define DURATION_TRACE(str) \
    drTimeSpan.Stop(); \
    TRACE(_T("%s(%i) : \n"),__FILE__,__LINE__); \
    TRACE(_T("Duration\n")); \
    TRACE(_T("\tInfo: %s.\n"),str); \
    TRACE(_T("\tCurrent time: %s. \n"),
    COleDateTime::GetCurrentTime().Format()); \
    TRACE(_T("\tTime elapsed: %s. \n"),drTimeSpan.Format())

    which you would have to all be put on one line, which would make it less readable, whereas under my scheme, the first line would be a LINETRACE and the rest of the lines would still be TRACE statements

    2. Your proposed solution is ok if you are using MFC, but the solution I proposed will work if you are using either a MFC application or a ATL application - it could really have been as follows to be a little bit shorter though [save 1 line!! Smile | :) ]...

    #ifndef TRACE_FUNCTION
    #ifdef ATLTRACE
    #ifdef TRACE


    this (as well as my original snippet), also allow the user to overwrite the TRACE_FUNCTION by defining it before this section of code.

    Have fun,
    Paul Westcott
    GeneralRe: I like it, but... Pin
    Anonymous30-Jul-01 4:58
    memberAnonymous30-Jul-01 4:58 

    General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

    Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

    Permalink | Advertise | Privacy | Terms of Use | Mobile
    Web02 | 2.8.170624.1 | Last Updated 5 Oct 2000
    Article Copyright 2000 by Audrius Vasiliauskas
    Everything else Copyright © CodeProject, 1999-2017
    Layout: fixed | fluid