53
Mac OS X Core Dump Analysis Dmitry Vostokov Software Diagnostics Services Version 2.0

Mac OS X - Software Diagnostics · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

  • Upload
    vanque

  • View
    235

  • Download
    11

Embed Size (px)

Citation preview

Page 1: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Mac OS X Core Dump Analysis

Dmitry Vostokov Software Diagnostics Services

Version 2.0

Page 2: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Prerequisites

Basic Mac OS X troubleshooting

GDB Commands We use these boxes to introduce GDB commands used in practice exercises

© 2014 Software Diagnostics Services

LLDB Commands We use these boxes to introduce LLDB commands used in practice exercises

Page 3: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Training Goals

Review fundamentals

Learn how to collect core dumps

Learn how to analyze core dumps

© 2014 Software Diagnostics Services

Page 4: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Training Principles

Talk only about what I can show

Lots of pictures

Lots of examples

Original content

© 2014 Software Diagnostics Services

Page 5: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Schedule Summary Day 1 Analysis Fundamentals (30 minutes)

Core dump collection methods (10 minutes)

Basic Core Memory Dumps (1 hour 20 minutes)

Day 2 Core Memory Dumps (2 hours)

© 2014 Software Diagnostics Services

Page 6: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Part 1: Fundamentals

© 2014 Software Diagnostics Services

Page 7: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Memory/Kernel/User Space

Kernel Space

User Space

0000000000000000

00007FFFFFFFFFFF

NULL Pointers00000000FFFFFFFF0000000100000000

© 2014 Software Diagnostics Services

Page 8: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

App/Process/Library

Kernel Space

User Space (PID 3743)

0000000100000000

00007FFFFFFFFFFF

TextEdit

TextEdit

Cocoa

libobjc.A.dylibCocoa

libobjc.A.dylib

Cocoa

libobjc.A.dylib

© 2014 Software Diagnostics Services

Page 9: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Process Memory Dump GDB Commands info sharedlibrary Lists dynamic libraries maintenance info sections Lists memory regions

core.3743

Kernel Space

User Space (PID 3743)

0000000100000000

00007FFFFFFFFFFF

TextEdit

Cocoa

libobjc.A.dylib

Cocoa

libobjc.A.dylib

© 2014 Software Diagnostics Services

LLDB Commands image list Lists dynamic libraries image dump sections Lists memory regions

Page 10: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Process Threads GDB Commands info threads Lists threads thread <n> Switches between threads thread apply all bt Lists stack traces from all threads

Kernel Space

User Space (PID 362)

AppA

libsystem_kernel.dylib

TID 1TID 0

libsystem_c.dylib

© 2014 Software Diagnostics Services

LLDB Commands thread list Lists threads thread select <n> Switches between threads thread backtrace all Lists stack traces from all threads

Page 11: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Thread Stack Raw Data GDB Commands x/<n>a <address> Prints n addresses with corresponding symbol mappings if any

Kernel Space

User Space (PID 362)

AppA

libsystem_kernel.dylib

TID 1TID 0

libsystem_c.dylib

Stack for TID 0

Stack for TID 1

© 2014 Software Diagnostics Services

LLDB Commands x/<n>a <address> Prints n addresses with corresponding symbol mappings if any

Page 12: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Thread Stack Trace

GDB Commands (gdb) bt #0 0x00007fff885e982a in FunctionD () #1 0x00007fff83288a9c in FunctionC () #2 0x0000000104da3ea9 in FunctionB () #3 0x0000000104da3edb in FunctionA ()

User Stack for TID 0

FunctionA

FunctionB

FunctionC

Saves return address FunctionA+110

Saves return address FunctionB+220

FunctionD

Saves return address FunctionC+130

Resumes from address FunctionA+110

Resumes from address FunctionB+220

Resumes from address FunctionC+130

FunctionA(){ ... FunctionB(); ...}

FunctionB(){ ... FunctionC(); ...}

FunctionC(){ ... FunctionD(); ...}

Return address FunctionC+1300x00007fff83288a9c

Return address FunctionB+2200x0000000104da3ea9

Return address FunctionA+1100x0000000104da3edb

© 2014 Software Diagnostics Services

LLDB Commands (lldb) bt frame #0: 0x00007fff885e982a Module`FunctionD + offset frame #1: 0x00007fff83288a9c Module`FunctionC + 130 frame #2: 0x0000000104da3ea9 AppA`FunctionB + 220 frame #3: 0x0000000104da3edb AppA`FunctionA + 110

Page 13: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

GDB and LLDB vs. WinDbg

WinDbg Commands 0:000> kn 00 00007fff83288a9c Module!FunctionD+offset 01 0000000104da3ea9 Module!FunctionC+130 02 0000000104da3edb AppA!FunctionB+220 03 0000000000000000 AppA!FunctionA+110

© 2014 Software Diagnostics Services

LLDB Commands (lldb) bt frame #0: 0x00007fff885e982a Module`FunctionD + offset frame #1: 0x00007fff83288a9c Module`FunctionC + 130 frame #2: 0x0000000104da3ea9 AppA`FunctionB + 220 frame #3: 0x0000000104da3edb AppA`FunctionA + 110

GDB Commands (gdb) bt #0 0x00007fff885e982a in FunctionD () #1 0x00007fff83288a9c in FunctionC () #2 0x0000000104da3ea9 in FunctionB () #3 0x0000000104da3edb in FunctionA ()

Page 14: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Thread Stack Trace (no dSYM) User Stack for TID 0

Return address FunctionC+1300x00007fff83288a9c

Return address 0x0000000104da3ea9

Return address0x0000000104da3edb

Symbol file AppA.dSYM

FunctionA 22000 - 23000FunctionB 32000 - 33000

GDB Commands (gdb) bt #0 0x00007fff885e982a in FunctionD () #1 0x00007fff83288a9c in FunctionC () #2 0x0000000104da3ea9 in ?? () #3 0x0000000104da3edb in ?? ()

© 2014 Software Diagnostics Services

LLDB Commands (lldb) bt frame #0: 0x00007fff885e982a Module`FunctionD + offset frame #1: 0x00007fff83288a9c Module`FunctionC + 130 frame #2: 0x0000000104da3ea9 AppA`___lldb_unnamed_function1$$AppA + 220 frame #3: 0x0000000104da3edb AppA`___lldb_unnamed_function2$$AppA + 110

Page 15: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exceptions (Access Violation)

GDB Commands (gdb) x <address> 0x<address>: Cannot access memory at address 0x<address>

User Space (PID 306)

AppA

libsystem_kernel.dylib

libA.dylib

TID 1

Stack for TID 0

Stack for TID 1

TID 0

EXC_BAD_ACCESS (SIGSEGV)M

NULL pointer 0x0M

© 2014 Software Diagnostics Services

LLDB Commands (lldb) x <address> error: core file does not contain 0x<address>

Page 16: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exceptions (Runtime)

User Space (PID 306)

AppA

libsystem_kernel.dylib

libA.dylib

TID 1

Stack for TID 0

Stack for TID 1

TID 0

throws exceptionM

© 2014 Software Diagnostics Services

Page 17: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Pattern-Driven Analysis

Information Collection (Scripts)

Information Extraction (Checklists)

Problem Identification (Patterns)

Problem Resolution

Troubleshooting Suggestions

Debugging Strategy

Pattern: a common recurrent identifiable problem together with a set of recommendations and possible solutions to apply in a specific context

© 2014 Software Diagnostics Services

Page 18: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Part 2: Core Dump Collection

© 2014 Software Diagnostics Services

Page 19: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Enabling Collection

Temporary for the current terminal session:

$ ulimit -c unlimited

Permanent for every user:

$ sudo vi /etc/launchd.conf

Add the line: limit core unlimited

© 2014 Software Diagnostics Services

Page 20: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Generation Methods

Command line: $ kill –s SIGQUIT PID $ kill –s SIGABRT PID

GUI:

Utilities \ Activity Monitor View \ Send Signal to Process

© 2014 Software Diagnostics Services

Page 21: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Part 3: Practice Exercises

© 2014 Software Diagnostics Services

Page 22: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Links

Memory Dumps:

NOT IN THE PUBLIC PREVIEW VERSION

Exercise Transcripts:

NOT IN THE PUBLIC PREVIEW VERSION

© 2014 Software Diagnostics Services

Page 23: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise 0 (GDB)

Goal: Install Xcode and check if GDB loads a core dump correctly

Patterns: Incorrect Stack Trace

\AMCDA-Dumps\Exercise-A0-GDB.pdf

© 2014 Software Diagnostics Services

Page 24: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise 0 (LLDB)

Goal: Install Xcode and check if LLDB loads a core dump correctly

Patterns: Incorrect Stack Trace

\AMCDA-Dumps\Exercise-A0-LLDB.pdf

© 2014 Software Diagnostics Services

Page 25: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Process Core Dumps

Exercises A1-A12

© 2014 Software Diagnostics Services

Page 26: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A1 (GDB)

Goal: Learn how to list stack traces, disassemble functions, check their correctness, dump data, compare core dumps with diagnostic reports, get environment

Patterns: Manual Dump, Stack Trace, Stack Trace Collection, Annotated Disassembly, Paratext, Not My Version, Environment Hint

\AMCDA-Dumps\Exercise-A1-GDB.pdf

© 2014 Software Diagnostics Services

Page 27: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A1 (LLDB)

Goal: Learn how to list stack traces, disassemble functions, check their correctness, dump data, compare core dumps with diagnostic reports, get environment

Patterns: Manual Dump, Stack Trace, Stack Trace Collection, Annotated Disassembly, Paratext, Not My Version, Environment Hint

\AMCDA-Dumps\Exercise-A1-LLDB.pdf

© 2014 Software Diagnostics Services

Page 28: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A2 (GDB)

Goal: Learn how to identify multiple exceptions, find problem CPU instructions

Patterns: Multiple Exceptions, NULL Pointer (data), NULL Pointer (code)

\AMCDA-Dumps\Exercise-A2-GDB.pdf

© 2014 Software Diagnostics Services

Page 29: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A2 (LLDB)

Goal: Learn how to identify multiple exceptions, find problem CPU instructions

Patterns: Multiple Exceptions, NULL Pointer (data), NULL Pointer (code)

\AMCDA-Dumps\Exercise-A2-LLDB.pdf

© 2014 Software Diagnostics Services

Page 30: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A3 (GDB)

Goal: Learn how to identify spiking threads

Patterns: Spiking Thread

\AMCDA-Dumps\Exercise-A3-GDB.pdf

© 2014 Software Diagnostics Services

Page 31: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A3 (LLDB)

Goal: Learn how to identify spiking threads

Patterns: Spiking Thread

\AMCDA-Dumps\Exercise-A3-LLDB.pdf

© 2014 Software Diagnostics Services

Page 32: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A4 (GDB)

Goal: Learn how to identify heap regions and heap corruption

Patterns: Heap Corruption

\AMCDA-Dumps\Exercise-A4-GDB.pdf

© 2014 Software Diagnostics Services

Page 33: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A4 (LLDB)

Goal: Learn how to identify heap regions and heap corruption

Patterns: Heap Corruption

\AMCDA-Dumps\Exercise-A4-LLDB.pdf

© 2014 Software Diagnostics Services

Page 34: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A5 (GDB)

Goal: Learn how to identify stack corruption

Patterns: Local Buffer Overflow, Execution Residue

\AMCDA-Dumps\Exercise-A5-GDB.pdf

© 2014 Software Diagnostics Services

Page 35: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A5 (LLDB)

Goal: Learn how to identify stack corruption

Patterns: Local Buffer Overflow, Execution Residue

\AMCDA-Dumps\Exercise-A5-LLDB.pdf

© 2014 Software Diagnostics Services

Page 36: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A6 (GDB)

Goal: Learn how to identify stack overflow, stack boundaries, reconstruct stack trace

Patterns: Stack Overflow, Execution Residue

\AMCDA-Dumps\Exercise-A6-GDB.pdf

© 2014 Software Diagnostics Services

Page 37: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A6 (LLDB)

Goal: Learn how to identify stack overflow, stack boundaries, reconstruct stack trace

Patterns: Stack Overflow, Execution Residue

\AMCDA-Dumps\Exercise-A6-LLDB.pdf

© 2014 Software Diagnostics Services

Page 38: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A7 (GDB)

Goal: Learn how to identify active threads

Patterns: Divide by Zero, Active Thread

\AMCDA-Dumps\Exercise-A7-GDB.pdf

© 2014 Software Diagnostics Services

Page 39: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A7 (LLDB)

Goal: Learn how to identify active threads

Patterns: Divide by Zero, Active Thread

\AMCDA-Dumps\Exercise-A7-LLDB.pdf

© 2014 Software Diagnostics Services

Page 40: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A8 (GDB)

Goal: Learn how to identify runtime exceptions, past execution residue and stack traces, identify handled exceptions

Patterns: C++ Exception, Execution Residue, Coincidental Symbolic Information, Handled Exception

\AMCDA-Dumps\Exercise-A8-GDB.pdf

© 2014 Software Diagnostics Services

Page 41: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A8 (LLDB)

Goal: Learn how to identify runtime exceptions, past execution residue and stack traces, identify handled exceptions

Patterns: C++ Exception, Execution Residue, Coincidental Symbolic Information, Handled Exception

\AMCDA-Dumps\Exercise-A8-LLDB.pdf

© 2014 Software Diagnostics Services

Page 42: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A9 (GDB)

Goal: Learn how to identify heap leaks

Patterns: Heap Leak, Execution Residue, Module Hint

\AMCDA-Dumps\Exercise-A9-GDB.pdf

© 2014 Software Diagnostics Services

Page 43: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A9 (LLDB)

Goal: Learn how to identify heap leaks

Patterns: Heap Leak, Execution Residue, Module Hint

\AMCDA-Dumps\Exercise-A9-LLDB.pdf

© 2014 Software Diagnostics Services

Page 44: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A10 (GDB)

Goal: Learn how to identify heap contention wait chains, synchronization issues, advanced disassembly, dump arrays

Patterns: Double Free, Heap Contention, Wait Chain, Critical Region, Self-Diagnosis

\AMCDA-Dumps\Exercise-A10-GDB.pdf

© 2014 Software Diagnostics Services

Page 45: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A10 (LLDB)

Goal: Learn how to identify heap contention wait chains, synchronization issues, advanced disassembly, dump arrays

Patterns: Double Free, Heap Contention, Wait Chain, Critical Region, Self-Diagnosis

\AMCDA-Dumps\Exercise-A10-LLDB.pdf

© 2014 Software Diagnostics Services

Page 46: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A11 (GDB)

Goal: Learn how to identify synchronization wait chains, deadlocks, hidden and handled exceptions

Patterns: Wait Chains, Deadlock, Execution Residue, Handled Exception

\AMCDA-Dumps\Exercise-A11-GDB.pdf

© 2014 Software Diagnostics Services

Page 47: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A11 (LLDB)

Goal: Learn how to identify synchronization wait chains, deadlocks, hidden and handled exceptions

Patterns: Wait Chains, Deadlock, Execution Residue, Handled Exception

\AMCDA-Dumps\Exercise-A11-LLDB.pdf

© 2014 Software Diagnostics Services

Page 48: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A12 (GDB)

Goal: Learn how to dump memory for post-processing, get the list of functions and module variables, load symbols, inspect arguments and local variables

Patterns: Module Variable

\AMCDA-Dumps\Exercise-A12-GDB.pdf

© 2014 Software Diagnostics Services

Page 49: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Exercise A12 (LLDB)

Goal: Learn how to dump memory for post-processing, get the list of functions and module variables, load symbols, inspect arguments and local variables

Patterns: Module Variable

\AMCDA-Dumps\Exercise-A12-LLDB.pdf

© 2014 Software Diagnostics Services

Page 50: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Pattern Links Active Thread Annotated Disassembly C++ Exception Coincidental Symbolic Information Critical Region Deadlock Divide by Zero Double Free Environment Hint Execution Residue Incorrect Stack Trace Handled Exception Heap Contention Heap Corruption Heap Leak Local Buffer Overflow Manual Dump Module Hint Module Variable Multiple Exceptions Not My Version NULL Pointer (data) NULL Pointer (code) Paratext Self-Diagnosis Spiking Thread Stack Overflow Stack Trace Stack Trace Collection Wait Chain

© 2014 Software Diagnostics Services

Page 51: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Resources Software Diagnostics Institute Pattern-Driven Software Diagnostics Pattern-Based Software Diagnostics Debugging TV Rosetta Stone for Debuggers GDB Pocket Reference GDB -> LLDB Map Memory Dump Analysis Anthology (volume 7 covers Mac OS X)

© 2014 Software Diagnostics Services

Page 52: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Q&A

Please send your feedback using the contact form on PatternDiagnostics.com

© 2014 Software Diagnostics Services

Page 53: Mac OS X - Software Diagnostics  · PDF fileMac OS X . Core Dump Analysis . Dmitry Vostokov . Software Diagnostics Services . Version 2.0

Thank you for attendance!

© 2014 Software Diagnostics Services