A Step-By-Step Guide for Handling Crash of Legacy C++ Application
You're on call. Production system crashed. No stack trace, no error message — just a dead process and maybe a core file. Now what? Do not be panic! Follow this guide step by step. You'll have a met...

Source: DEV Community
You're on call. Production system crashed. No stack trace, no error message — just a dead process and maybe a core file. Now what? Do not be panic! Follow this guide step by step. You'll have a methodical approach to finding the root cause, whether you have debug symbols, a stripped binary, or nothing at all. Let's go. Decision Tree – Your Quick Reference Flowchart Do not get lost -- keep the map in hand. Here is the complete decision map. CRASH | v HAVE CORE FILE? ──No──> Enable cores (Path B) ──> Rerun crashed App | Yes (Path A) | v HAVE DEBUG SYMBOLS? ──Yes──> Debug (Path A4) | No | v HAVE SYMBOL FILE? ──Yes──> Load with -s flag (Step A6) | No | v CAN REPRODUCE WITH SYMBOLS? ──Yes──> Recompile with -g (Step A7) | No | v HAVE ORIGINAL BUILD? ──Yes──> Map addresses with addr2line (Step A8) | No | v FALLBACK: Register analysis + instruction dump (Step A9) Path A: Have a Core File The first question to ask: has a core file already been generated? Follow Step A1 to find