During Development
During Implementation
2. Troubleshoot
Collect
1. Prepare
Remote System Access
Remote Debug Tools
External Tracing Tools
Collect System Info
System Changelog
Performance Baseline
System Diagrams
Critical Sections
Tracing Hooks
Logs
try..catch..finally
Collect Debug Symbols
Application Diagram
Versioning
Machine readable (XML, delimited, etc.)
Searchable, Sortable, Filterable
Organized (category, severity, etc.)
Specific and Meaningful
Do not use publicly-available sync objects
this
typeof(MyType)
Exceptions are not normal flow control
Keep 'try' blocks small
Any string
Do not swallow exceptions
Only catch exceptions you can handle
Every released assembly is versioned
Never raise exceptions from 'finally' block
If the assembly is different, the version number is different.
Get Protected
Track Everything
Reproduce the Problem
Use Familiar Tools
Look for Patterns
Remember the Problem
Lose Your Ego
Guess
Review Historical Data
Narrow the Scope
Eclipse
Windbg
Visual Studio
Browser Dev Tools
Eclipse
DynaTrace
BMC BlackBox
Visual Studio Intellitrace
MuTek
Chronon
Windows Performance Monitor
WireShark
Resource Monitor
CLR Profiler
WCF Service Trace
Apache Log Viewer
Windbg
ADPlus.vbs, ADPlus 7
Visual Studio 2010
(Frmwk 4.0+ only)
Analyze
Understood
Communicable
3. Deploy
Stable
Localized
(but not yet fixed)
http://gplus.to/patrickdelancy
http://linkedin.com/in/patrickdelancy