debugging 101 - wordpress.com...happy debugging! title debugging101.key created date 6/28/2016...

Post on 15-Oct-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Debugging 101Neelima Mukiri

Case Studies (Please refer to the blog

post)

Define the Problem

Who?

What?

Where? When?

How?

Why?

Define the Problem

Understand the System• Product ecosystem

• Programming Language

• Frameworks

• Operating System

• Networking

• Storage

• Hardware

Collect More Information

• Software, hardware configurations

• Work loads

• State of the system at panic

• Compare with a working system

• User and privilege information

Recreate the Failure

http://www.youtube.com/watch?v=gIdcvIqkSBA&t=0m55s

Identify Potential Causes

• Brainstorm

• Clues from data

• Experience and Intuition

• Potential Cause and effect analysis

Divide and Conquer

• Software Instrumentation

• Hardware Dumps

• Hardware assisted memory virtualization

• Software/Hardware Versions Involved

Track the Changes

• Document EVERYTHING

• It is easy to lose track of experiments done, results and side effects

• Recreate the failure after every change

• Absence of failure means nothing…almost

Cause and effect analysis

• Zoom in on probable cause

• Does it explain all the symptoms

• Does anything in the system state contradict expected behavior for this cause

• Test fixes

DON’T PANIC

Method to the madness• Define the problem precisely

• Understand the system in depth

• Collect data

• Catch the failure

• Identify potential causes

• Divide and conquer

• Track changes and effects

• Document everything

• Test the fixes

• Diversity Rocks

Collaborate

Brainstorm

Discuss, explain, get a fresh look

Design for Debugging• Bugs are inevitable

• Logs, monitoring, configuration collection

• Replication Tools

• Stress Options

• Debug tools are Products

• Can you Ping your system?

• Workarounds and Feature Switches

Happy Debugging!

top related