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

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

Aug 14, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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