22
Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services

Pattern-Driven Software Problem Solving · Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services. Prerequisites Experience in software troubleshooting

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Pattern-Driven Software Problem Solving · Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services. Prerequisites Experience in software troubleshooting

Pattern-Driven

Software Problem Solving

Presenter: Dmitry Vostokov

Memory Dump Analysis Services

Page 2: Pattern-Driven Software Problem Solving · Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services. Prerequisites Experience in software troubleshooting

Prerequisites

Experience in software troubleshooting

and/or debugging

© 2011 Memory Dump Analysis Services

Page 3: Pattern-Driven Software Problem Solving · Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services. Prerequisites Experience in software troubleshooting

Agenda (Summary)

A Short History

Basic Definitions

Pattern Categories

Future Research Directions

© 2011 Memory Dump Analysis Services

Page 4: Pattern-Driven Software Problem Solving · Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services. Prerequisites Experience in software troubleshooting

DumpAnalysis.org*

5 Years!

* Now Includes: TraceAnalysis.org, www.ForensicAnalysis.org, and Victimware.org

© 2011 Memory Dump Analysis Services

Page 5: Pattern-Driven Software Problem Solving · Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services. Prerequisites Experience in software troubleshooting

Agenda (Basic Definitions)

Software Problems

Software Patterns

DA+TA

Pattern Hybridization

© 2011 Memory Dump Analysis Services

Page 6: Pattern-Driven Software Problem Solving · Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services. Prerequisites Experience in software troubleshooting

Software Problems

Construction: Requirements, Architecture, Design,

and Implementation

Post-Construction: Maintenance and Support

© 2011 Memory Dump Analysis Services

Post-construction problem: any observed deviations in

structure and behavior between modeling expectations

and the actual built system.*

* What is a Software Defect?

Page 7: Pattern-Driven Software Problem Solving · Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services. Prerequisites Experience in software troubleshooting

Software Patterns

Construction: Requirements, Architecture, Design,

and Implementation

Post-Construction: Maintenance and Support

© 2011 Memory Dump Analysis Services

Pattern: a common recurrent identifiable problem

together with a set of recommendations and possible

solutions to apply in a specific context

Page 8: Pattern-Driven Software Problem Solving · Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services. Prerequisites Experience in software troubleshooting

DA+TA

DA: Dump Artifact / Dump Analysis

Memory snapshots: process, kernel, physical memory dumps

TA: Trace Artifact / Trace Analysis

Software traces: Event Tracing for Windows, logs

© 2011 Memory Dump Analysis Services

Page 9: Pattern-Driven Software Problem Solving · Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services. Prerequisites Experience in software troubleshooting

Pattern Hybridization

A bit of Chemistry: Carbon SP3 orbital hybridization

© 2011 Memory Dump Analysis Services

System

+

Environment

DA+TA

Artifacts

DA+TA

Patterns

Debugware

Construction

Patterns

S P3

Software Patterns3

Software Patterns3

- Structural

- Behavioral

- Debugware

- Debugging

Page 10: Pattern-Driven Software Problem Solving · Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services. Prerequisites Experience in software troubleshooting

Agenda (Pattern Categories)

Software Behavior

Debugware Tools

Problem Workaround

Unified Debugging

© 2011 Memory Dump Analysis Services

Page 11: Pattern-Driven Software Problem Solving · Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services. Prerequisites Experience in software troubleshooting

Software Behavior

Memory dump and software trace

Examples: Spiking Thread, Discontinuity

+200 patterns (DA+TA)

DumpAnalysis.org

© 2011 Memory Dump Analysis Services

Page 12: Pattern-Driven Software Problem Solving · Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services. Prerequisites Experience in software troubleshooting

DA: Software Behavior

Memory dump: a memory snapshot

Definition, partial classification and

historical list

Pattern identification case studies

© 2011 Memory Dump Analysis Services

Page 13: Pattern-Driven Software Problem Solving · Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services. Prerequisites Experience in software troubleshooting

TA: Software Behavior

“Imagine you got a software trace from hundreds of modules

you haven’t written or haven’t seen source code of...”

Software trace: a sequence of memory

fragments ordered in time

Definition, and historical list

Pattern identification case studies

© 2011 Memory Dump Analysis Services

Page 15: Pattern-Driven Software Problem Solving · Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services. Prerequisites Experience in software troubleshooting

Problem Workaround

Troubleshooting when debugging is not

an option

Example: Frozen Process

Patterns

DumpAnalysis.org

© 2011 Memory Dump Analysis Services

Page 16: Pattern-Driven Software Problem Solving · Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services. Prerequisites Experience in software troubleshooting

Unified Debugging

Systematic Pattern Language

Example:

Analysis Patterns Shared Buffer Overwrite

Architectural Patterns Debug Event Subscription / Notification

Design Patterns Punctuated Execution

Implementation Patterns Breakpoint (software and hardware)

Usage Patterns Kernel vs. user space breakpoints

© 2011 Memory Dump Analysis Services

Page 17: Pattern-Driven Software Problem Solving · Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services. Prerequisites Experience in software troubleshooting

Agenda (Future Directions)

Structural Memory Patterns

Unified Debugging Pattern Language

Domain Pattern Hierarchy

Periodic Table of Software Defects

© 2011 Memory Dump Analysis Services

Page 19: Pattern-Driven Software Problem Solving · Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services. Prerequisites Experience in software troubleshooting

Domain Pattern Hierarchy

Repeated patterns through the layers of software

© 2011 Memory Dump Analysis Services

Page 21: Pattern-Driven Software Problem Solving · Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services. Prerequisites Experience in software troubleshooting

Q&A

Please send your feedback using the contact

form on DumpAnalysis.com

© 2011 Memory Dump Analysis Services

Page 22: Pattern-Driven Software Problem Solving · Pattern-Driven Software Problem Solving Presenter: Dmitry Vostokov Memory Dump Analysis Services. Prerequisites Experience in software troubleshooting

Thank you for attendance!

© 2011 Memory Dump Analysis Services

Join DA+TA Facebook Group