• Online, Self-Paced
Course Description

In software development, debugging is a necessary part of the development process. It's difficult for developers to admit that their code is buggy, but the best software developers recognize that there's no such thing as perfect code. And while debugging is time-consuming and expensive, it must be included in the development cycle, just like any other component necessary to delivering a working piece of software. This course introduces the learner to basic concepts of software debugging, debugging tools, and debugging best practices.

Learning Objectives

Debugging Basics

  • start the course
  • recognize basic concepts of debugging
  • recognize the importance of debugging
  • recognize basic debugging methodology
  • recognize basic causes and effects
  • recognize different types of software problems
  • recognize different types of software bugs

Debugging Concepts I

  • recognize the basics of measuring success in debugging
  • recognize how the journey begins
  • recognize the basics of monitoring, tracing, and profiling
  • recognize the basic development environments

Debugging Concepts II

  • recognize crashes
  • recognize hangs
  • recognize bad functionality
  • recognize performance problems

Introduction to Debugging Tools

  • recognize the basic uses of Dr. Watson/Action Center
  • recognize the basic uses of performance counters
  • recognize the basic uses of MDbg
  • recognize the basic uses of PerfView
  • recognize the basic uses of DebugDiag

Debugging Best Practices

  • recognize prevention practices
  • recognize general debugging tips
  • recognize the six rules of debugging
  • recognize debugging tips for editors and debuggers
  • recognize the qualities of effective debuggers
  • recognize ways to improve your debugging skills

Practice: Introduction to Debugging

  • understand the basic concepts of debugging

Framework Connections