DEV Community

Cover image for "Use System.Diagnostics.Trace and DbgView within a WPF-Application"
Kim Kulling
Kim Kulling

Posted on

 

"Use System.Diagnostics.Trace and DbgView within a WPF-Application"

This blogpost was first posted here

TRACE using C/C++ with Win32-API

One of my favorite tools to debug Win32/MFC-Applications with UI was the Win32-call:

::OutputDebugString( "Test\n" );
Enter fullscreen mode Exit fullscreen mode

You can use it to trace debug information withing your application during runtime. Special if you have to analyze some runtime-specific error and you do not have any kind of console / log to do printf-debugging this Win32-Call case save your ass. You only have to run the tool DbgView to monitor these log-entries ( if you want to try it out you can download DbgView here.

TRACE using C# with WPF

Because I am currently working with C# in my job I wanted to use this tool as well for WVF-applications. And of course there is a corresponding API-method in the .NET-framework called:

Trace.WriteLine( string msg );
Enter fullscreen mode Exit fullscreen mode

You can find the documentation here.

It is easy to use. Just insert your Trace-log-entries in your code. When you want to take a look into your application you can start DbgView to see, what is ongoing. Just make sure, that you have defined:

#define TRACE
Enter fullscreen mode Exit fullscreen mode

at the beginning of your source-file. Here is a small example:

#define TRACE

using System.Diagnosics;

class Test {
    static int main() {
        Trace.WriteLine("Hello, world!" );
        Exit(0);
    }
}
Enter fullscreen mode Exit fullscreen mode

To check if this works fine just run DbgView and run your application. You should be able to see your post Hello, world! there.

Top comments (0)

Timeless DEV post...

Git Concepts I Wish I Knew Years Ago

The most used technology by developers is not Javascript.

It's not Python or HTML.

It hardly even gets mentioned in interviews or listed as a pre-requisite for jobs.

I'm talking about Git and version control of course.

One does not simply learn git