Table of Contents
BackCover
Debugging Strategies for .NET Developers
Chapter 1: Debugging Introduction
Identifying the Problem
What .NET Adds to Debugging
Still More to Come
Chapter 2: Quickies - Six Pieces of Debugging Advice
1) Never Ignore a Bug That Occurs Early in a Test to Investigate a Bug That Occurs Later
2) Never Forget the Goal Is to Make the Program Work - Fixing the Bug Is the Means, Not the End
3) When Something Works One Way but Fails in a Different Way, Focus on the Differences
4) Never Assume the Problem Is a Bug in the Hardware, API, or OS Without Reasonable Proof
5) Keep a Few Test Computers on Which Debugging Tools Are NEVER Installed - No Exceptions. Period.
6) Step Over All New Code in the Debugger As Soon As You Finish Writing It
Highlights
Chapter 3: Always Have a Plan
Brute-Force Debugging
Three Guesses
The Cell Phone Problem
Highlights
Chapter 4: Assertion Debugging
What Are Asserts?
" But I Always Test My Code, So Why Do I Need Asserts? "
.NET's Debug and Trace Classes
Using Asserts Aggressively
Asserting Performance Bottlenecks
Don't Assert Legal Cases
When Asserts Can't Be Easily Used
Asserts with Remote Objects
Customizing Asserts with a TraceListener
Highlights
Chapter 5: Debugging with Logs
Printf Debugging
Program Logs
.NET's Support for Logging
Windows Event Logs
Highlights
Chapter 6: ASP.NET and SQL Debugging
ASP.NET and the Debugger
Logging with ASP.NET
Debugging SQL Stored Procedures
Highlights
Chapter 7: Debugging Remote Customer Sites
Why Is It So Hard to Debug a Remote Customer Issue?
The Server Is Unwilling to Process the Request
" Why Are You Asking Me All These Questions? Why Can't You Just Fix It?!? "
Automated Diagnostic Utilities
Changing the Log Level
Third-Party Tools Let You Watch the Customer Reproduce the Bug
For Very Hard Bugs, Let Developers Participate in the Tech Support Phone Calls
Make a New Build with More Logging - and a Way to Verify Whether It Gets Installed
Make Sure You Can Tell If the New Version Was Actually Installed
.NET Security
Highlights
Chapter 8: Multithreaded Debugging
What Is Multithreading?
Viewing Threads in the Debugger
Causes of Common Threading Problems
Debugging Threading Problems
Final Thoughts About Threading
Highlights
Chapter 9: Defect Tracking Programs
Why Do You Need Defect Tracking Software?
No Required Fields Except the Repro Steps
Development Workflows
Make Sure Your Workflow Has an Escape Hatch
Searching and Reporting
Learning from Past Mistakes
Priorities
Communicating with Teammates
What to Say on a Bounce-Back PR
Know Your Tools
Highlights
Chapter 10: Source Control Debugging
Introduction to Source Control
Debugging with SourceSafe
Highlights
Epilogue
Index
Index_B
Index_C
Index_D
Index_E
Index_F-G
Index_H
Index_I
Index_J
Index_K
Index_L
Index_M
Index_N
Index_O
Index_P
Index_Q
Index_R
Index_S
Index_T
Index_U
Index_V
Index_W
Index_X-Z
List of Figures
List of Tables