Click here to Skip to main content
11,646,838 members (74,771 online)
Click here to Skip to main content

Navigate your TRACE outputs

, 28 Jul 2001 CPOL 84.3K 713 28
Rate this:
Please Sign up or sign in to vote.
Extended TRACE macros with easy source navigation

Introduction

XTrace replaces the standard MFC TRACE macros. The macros implemented in XTrace.h add the file name and the line number of the trace point to any trace message (using the built-in __FILE__ and __LINE__ macros). A double click on the trace message in the debug window navigates to the according source line.

Usage

  • If you want to use standard MFC TRACEs and XTRACEs side-by-side:
    1. Add xtrace.cpp to your project.
    2. Include xtrace.h in stdafx.h.
    3. Use TRACEx for standard MFC TRACE's and XTRACEx for navigable TRACE's.

  • If you want to navigate all TRACE outputs:
    1. Add xtrace.cpp to your project.
    2. Include xtracestd.h in stdafx.h. This will replace all standard MFC TRACEx macros with XTRACEx macros.

Updates

2000-10-23

  1. Evaluation of vargs in ExtTrace::Trace fixed.
  2. Macros are expanded to a single statement (using brackets and ',' operator).
  3. Newline will be appended to trace message if necessary.
  4. Macros renamed from TRACE to XTRACE (to use simple MFC TRACE's and XTRACE's side-by-side).
  5. Additional header xtracestd.h (include this header, if you want to replace all MFC TRACE macros with the according XTRACE macros).

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Wolfgang Busch
Software Developer
Germany Germany
No Biography provided

You may also be interested in...

Comments and Discussions

 
GeneralDoesn't work on MSVC++.NET Pin
Anonymous16-Jul-02 21:55
sussAnonymous16-Jul-02 21:55 
GeneralDoesn't work on VC5 Pin
Craig23-Oct-00 22:15
sussCraig23-Oct-00 22:15 
The FormatV() member of CString was not public in VC5, so this does not work.

This amendment should fix it: Replace the line
CString strMessage; // The full trace message
in xtrace.cpp with

#if _MFC_VER < 0x0421
class CString0420 : public CString
{
public:
void FormatV(LPCTSTR lpszFormat, va_list argList)
{
CString::FormatV(lpszFormat, argList);
}
};

CString0420 strMessage;
#else
CString strMessage; // The full trace message
#endif
GeneralRe: Doesn't work on VC5 Pin
Anonymous10-Nov-01 6:26
memberAnonymous10-Nov-01 6:26 
GeneralAre you trying to make this too complex... Pin
Paul Westcott23-Oct-00 12:24
sussPaul Westcott23-Oct-00 12:24 
GeneralRe: Are you trying to make this too complex... Pin
Wolfgang Busch23-Oct-00 14:15
sussWolfgang Busch23-Oct-00 14:15 
GeneralRe: Are you trying to make this too complex... Pin
Paul Westcott24-Oct-00 6:42
sussPaul Westcott24-Oct-00 6:42 
GeneralNot allways work Pin
Yury Goltsman22-Oct-00 4:55
sussYury Goltsman22-Oct-00 4:55 
GeneralUpdated Pin
Wolfgang Busch23-Oct-00 11:57
sussWolfgang Busch23-Oct-00 11:57 
GeneralDoesn't work on VC6, SP4 Pin
Craig18-Oct-00 23:35
sussCraig18-Oct-00 23:35 
GeneralBugfix Pin
Wolfgang Busch19-Oct-00 0:24
sussWolfgang Busch19-Oct-00 0:24 
GeneralUpdated Pin
Wolfgang Busch23-Oct-00 11:59
sussWolfgang Busch23-Oct-00 11:59 

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

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

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.150731.1 | Last Updated 29 Jul 2001
Article Copyright 2000 by Wolfgang Busch
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid