Loading…
Transcript

During Development

During Implementation

Working...

Danger!

2. Troubleshoot

Solved!

Questions?

Working...

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.

Patrick Delancy

Who am I?

  • Software Developer since 1999
  • Worked on Helpdesk 1999-2003
  • Computer Lab Manager / Backup Network Admin 2003-2005
  • Professional Software Developer since 2005

Troubleshooting Software in Production

Patrick Delancy

What Makes Production

so Special?

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

Real-time Debugger

DynaTrace

BMC BlackBox

Visual Studio Intellitrace

MuTek

Chronon

Code Tracer/Recorder

Windows Performance Monitor

WireShark

Resource Monitor

CLR Profiler

Monitor

WCF Service Trace

Apache Log Viewer

Types of Troubleshooting Tools

Log Analyzer

Windbg

ADPlus.vbs, ADPlus 7

Visual Studio 2010

(Frmwk 4.0+ only)

Dump Collector/Analyzer

Analyze

Understood

Communicable

3. Deploy

Stable

Localized

(but not yet fixed)

Thanks for coming!

Patrick Delancy

http://gplus.to/patrickdelancy

http://linkedin.com/in/patrickdelancy