Monday, February 09, 2009

“The Art of Debugging – A Developer’s Best Friend” – Ten lessons, so far, toward becoming a Visual Studio Debugging Ninja

Cloud Teacher Dot Com -

The Art of Debugging – A Developer’s Best Friend – Lesson 10 – Debugging Threads

The Art of Debugging – A Developer’s Best Friend – Lesson 9 – The Set Next Statement

The Art of Debugging – A Developer’s Best Friend – Lesson 8 – The Garbage Collector – GC

The Art of Debugging – A Developer’s Best Friend – Lesson 7 – Advanced Techniques – Using Object ID

The Art of Debugging – A Developer’s Best Friend – Lesson 6 – Watch and Immediate Windows – Advanced Techniques

The Art of Debugging – A Developer’s Best Friend – Lesson 5 – Using TracePoints

The Art of Debugging – A Developer’s Best Friend – Lesson 4 – Debugging Threads

The Art of Debugging – A Developer’s Best Friend – Lesson 3 – BreakPoint HitCount

The Art of Debugging – A Developer’s Best Friend – Lesson 2 – Breakpoints in SubExpressions

The Art of Debugging – A Developer’s Best Friend- Intro – Lesson 1

“Art is the process or product of deliberately arranging elements in a way that appeals to the sense or emotions. It encompasses a diverse range of human activities and I think debugging is an art form. There's nothing more beautiful (almost nothing) than watching your errant code expose it's semi-flawed algorithmic beauty. And nothing appeals to my emotions more than make my code more robust and more efficient after watching the debugger execute it one line at a time.

John Robbins is the pre-eminant debugger of today. You may check out his book for more information. Much of this material is based on his work.

Enter Visual Studio 2008

This blog is about Visual Studio. So the tips and techniques I talk about are things you can do with Visual Studio.

Download the sample project – debugging.zip

Here are the topics we want to cover

Stack Window Breakpoints

Sub Expression Breakpoints

Quickly Breaking on a Function

Breakpoint Hit Count

Breakpoint Condition

Assertions on the Fly

Filter Breakpoint Modifier

Tracepoints

The Amazing Data Tip

Calling Methods in the Watch Window

Testing Tricks

Make Object ID

Generational Objects

Set Next Statement

Threading Help

Setting up .NET Reference Source Code Stepping

…”

Some light Monday reading… ;)

This is a great series of articles, highly diagramed and to the point, on using the debugging in Visual Studio to its fullest.

 

Related Past Post XRef:
VS 2008 Tracepoints – Debug output without touching your code (Say goodbye to Debug.Write ?)

4 comments:

Essentia said...

Of course many of these examples just works with C#! When will Microsoft post tutorials which works with C++ - or better yet, make all debugging tools work with BOTH C# and C++!?
It's frustrating to hear talk of C#, C#, C#, C#, C#, C#, C#, C#, C#, C#, C#, C#, C#, C#, C#, C#, C#, C#, C#, C#, C#, C#, C#, C#, C#, C#, all the time!

Anonymous said...

These techniques work with all languages. The debugger is language agnostic, for the most part.

Bruno Terkaly (author)

Essentia said...

:(
Not all of them. I failed to make lesson 2 work with C++, and I do use Visual Studio 2008.

Brian Katz said...

As much as tools help, there is a psychology to it. This post might be of interest to your readers:
"Tips Tricks, Traps and Tools: # 3b of many: The Art of Troubleshooting almost Anything"
http://blog.vkistudios.com/index.cfm/2009/5/6/Tips-Tricks-Traps-and-Tools--3b-of-many-The-Art-of-Troubleshooting-almost-Anything

Brian Katz - VKI Studios