{{ !articles[0].partner.isSponsoringArticle ? "Platinum" : "Portal" }} Partner
dotnet,.net,tools,debugging,c-sharp,win32 & com

Using DebugView to catch debug output of .NET program

Often asked question: is there any way to gather debug output of .NET program that is running on environment where Visual Studio is not installed? Yes, you can do it and you can do it for free with program called DebugView. Here’s how it works.

After downloading and unzipping DebugView you can run it and select debug output options. I suggest you to run it as Administrator because otherwise it may state that there is already debugger up and running when you try to check Capture Global Win32 option.

DebugView: Capture options

DebugView starts listening immediately. As a next thing I will write some debug information to my code. This is one of my action methods in very early state and it’s safe to play with it.

public ActionResult Index(int page = 1)
    Debug.WriteLine("HomeController.Index: started, page=" + page);
    PagedResult<Event> events;
    using (var model = new EventsEntities())
        events = model.ListPublicEvents(page);
    Debug.WriteLine("HomeController.Index: finished");
    return View(events);

Now let’s run the code and see what DebugView is able to catch. Don’t run the code through Visual Studio as it attaches its own debugger and DebugView is not able to catch the output then.

DebugView: Debug output

Besides log messages you can also see how much time it takes to move from one debug output to another. If you have lengthy output then you can also use find functionality to search for specific log messages.

Published at DZone with permission of {{ articles[0].authors[0].realName }}, DZone MVB. (source)

Opinions expressed by DZone contributors are their own.

{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks