Skip to content

Commit

Permalink
Updating the documentation
Browse files Browse the repository at this point in the history
Added arrows to show the profiling button and added a filter example.
Maybe this will cut down on the confusion on where to see the tracing.
  • Loading branch information
JohnWintellect committed Mar 29, 2014
1 parent bc7cf6b commit d9a2c7d
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 3 deletions.
Binary file added FilterExample.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified ProcMonShowingTracing.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 9 additions & 3 deletions ReadMe.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,26 @@ All the projects are in Visual Studio 2013 format. I'm not using any advanced Pr
The 32-bit binaries build to .\Source\ReleaseWin32 and .\Source\DebugWin32.
The 64-bit binaries build to .\Source\Releasex64 and .\Source\Debugx64.

The only files you need after the build are: ProcMonDebugOutputWin32.dll, ProcMonDebugOutputx64.dll, and Sysinternals.Debug.dll.

## Using with C++ Native Applications ##
For native code, you’ll need to include the header file ProcMonDebugOutput.h and link against ProcMonDebugOutputx86.lib or ProcMonDebugOutputx64.lib as appropriate. The API you’ll call is, appropriately named, *ProcMonDebugOutput* which takes a single parameter of a UNICODE string. Obviously, you’ll need to add ProcMonDebugOutputx86.DLL or ProcMonDebugOutputx64.DLL as part of your distribution. See the .\Source\NativeTest application for an example.

## Using with .NET Applications ##
For managed code, the API is wrapped up in a TraceListener derived class, ProcessMonitorTraceListener, in Sysinternals.Debug.DLL. That means you can add ProcessMonitorTraceListener through [configuration files](http://msdn.microsoft.com/en-us/library/sk36c28t.aspx) like any TraceListener you’ve ever used. With your application you’ll need to include Sysinternals.Debug.DLL as well as both ProcMonDebugOutputx86.DLL and ProcMonDebugOutputx64.DLL. The ProcessMonitorTraceListener works with both 32-bit and 64-bit code and calls the appropriate native DLL as necessary. See the .\Source\ManagedTest application for a complete example.
For managed code, the API is wrapped up into a That means you can add ProcessMonitorTraceListener through [configuration files](http://msdn.microsoft.com/en-us/library/sk36c28t.aspx) like any TraceListener you’ve ever used. With your application you’ll only need to include Sysinternals.Debug.DLL as that's a complete managed implementation of the native API.

If you are an aficionado of Log4Net, [Justin Dearing](https://github.com/zippy1981), did the Log4Net appender so you can include Sysinternals.log4net.dll and do all your usual log4net configuration to get it working.

See the .\Source\ManagedTest application for a complete example showing both the TraceListener and Log4Net implementations

## Seeing Your Tracing in Process Monitor ##
The tracing statements are reported as Profiling Events so to see them, add ensure the "Show Profiling Events" button is selected (the last one on the toolbar). These events are of Operation type "Debug Output Profiling".

The following screen shot shows the tracing of the two sample programs with the filter set to only show tracing events.
![](ProcMonShowingTracing.jpeg)

To filter and see only your tracing statements, set the Process Monitor filtering to "Operation = Debug Output Profiling". Here's an example.

![](FilterExample.jpeg)

## But I Want to See All OutputDebug/Debug.WriteLine calls in Process Monitor ##
That's not going to happen. When Mark and I discussed adding tracing to Process Monitor, we talked about combining both Process Monitor and Debug View. It was far easier to add the custom interface presented here that to do the major engineering effort to combine the tools. Remember, shipping is a feature!

Expand Down

0 comments on commit d9a2c7d

Please sign in to comment.