Knowledge Transfer Microsoft Certified Training Partner CTEC
Knowledge Transfer is a Microsoft Certified Gold Partner
Microsoft Certified Gold Training Partner
Search for a Course Topic:
Public Courses
Corporate Services & Training



 Course Search
Course #

 Training Delivery
Training Delivery
Custom Curriculum
Course List
 Main Menu
View Courses
Site Index

Mastering .NET Debugging Overview

The Debugging Process

Most developers "almost-kinda" follow a pattern when debugging. Unfortunately, many developers go about debugging wrong because they have never been shown how to properly do it.

  • The skill set involved with debugging
  • The debugging process

Infrastructure You Have to Have, and How to Use It

  • One of the keys to minimizing bugs is learning the best practices from companies that are successfully shipping great software on time.
  • Version control and bug tracking tips
  • Compiler switches that matter
  • All about FxCop/Code Analysis
  • Everything to know about Symbol Servers
  • Everything to know about Source Servers

Debugging During Coding

  • One of the biggest keys to save you hundreds of wasted hours in the debugger is to ensure you don't type the bugs in the source code in the first place or check them into the master version control system.
  • Assertions in depth
  • How to know your code is good
  • Real world unit testing

Advanced Breakpoints

The main reason for using a debugger is setting breakpoints so you can gain control of the debuggee in order to find bugs. Unfortunately, most developers don't even scratch the surface of the debugger's power when it comes to breakpoints.

  • Advanced breakpoint setting tricks
  • Breakpoint hit count modifier
  • Breakpoint condition modifier
  • Filter breakpoints
  • Tracepoints

The Watch Window

Probably the greatest piece of engineering work in Visual Studio is the amazing Watch window. This section will cover the tricks and techniques necessary to get the most out of the Watch window.

  • Advanced Watch window usage
  • Testing using the Watch window
  • Auto expanding types to see the key information faster
  • Writing custom visualizers

Advanced Tips and Tricks

The final section on Visual Studio covers a loose collection of advanced techniques developers can use in the debugger such as the hard problem of debugging massively multithreaded applications.

  • Set next statement
  • Advanced multithreaded debugging
  • Managed Debugging Assistants


No network administrator managing production servers is ever going to let you install Visual Studio on a production box. What you are going to get off a production server is a minidump, which is a snapshot of all the memory your .NET application is using. In order to analyze those minidumps, you have to use a different debugger, WinDBG.

  • The basics of WinDBG
  • WinDBG regular commands for debugging
  • WinDBG meta commands for debugging
  • WinDBG extension command for debugging
  • Getting SOS loaded


SOS is one of those tools that gives you all the power in the world, but offers no way to get started on using that power.

  • Process state SOS commands
  • Using SOSEX to fix SOS limitations
  • Looking objects in memory with SOS commands
  • SOS heap commands
  • Finding reference SOS commands
  • Solving multithreaded deadlocks with SOS and WinDBG

Performance Tuning

Everyone wants fast code.  One of the problems is that very few developers have been properly exposed on how to think about the gestalt, or Zen of performance.

  • Thinking about performance
  • Algorithmic performance
  • .NET performance best practices
  • .NET performance tools best practices

Performance Tools

The reproducible numbers are everything when it comes to performance.  In the final section of the course, students will learn about freeware and commercial performance tools they can use to analyze their application's performance.

  • Using the Visual Studio performance tools
  • Finding a performance problem


View Printer Friendly Page

To Inquire About Future Classes

Request a class date

if one is not scheduled.

Comments on the Course

Teaching this class will be Donis Marshall; author of the bestselling Visual C# book from Microsoft Press entitled, Programming Microsoft Visual C# 2005. He is also the author of .NET Security Programming and Directory Services Programming for Windows both published by Wiley Worldwide Books, as well as the author of Active/OLE Programming with MFC published by R&D Books. He has taught debugging related classes and concepts around the world to many of the leading software companies.