Skip to content

CrashCatch v1.2.0

Latest
Compare
Choose a tag to compare
@keithpotz keithpotz released this 18 Apr 21:59
· 1 commit to main since this release

πŸš€ CrashCatch v1.2.0

CrashCatch v1.2.0 is our biggest update yet β€” bringing full Linux support, powerful callback hooks, and the groundwork for cross-platform crash diagnostics β€” all within a single header file.


✨ What's New

πŸ”§ Linux Support Finalized

  • βœ… POSIX signal handling now supports:
    • SIGSEGV – Segmentation fault
    • SIGABRT – Aborted process
    • SIGFPE – Floating-point exception
    • SIGILL, SIGBUS – Illegal instruction, bus errors
  • βœ… Stack traces via backtrace()
  • βœ… Demangled function names using __cxa_demangle
  • βœ… Executable path detection via /proc/self/exe

🧠 New CrashContext Struct

  • Contains detailed crash metadata passed into callback hooks:
    • .dmp file path (Windows)
    • .txt log path
    • timestamp
    • signal or exception code

πŸͺ onCrash and onCrashUpload Hooks

  • New configurable callbacks:
    config.onCrash = [](const CrashContext& ctx) {
        // Cleanup or logging before app terminates
    };
    
    config.onCrashUpload = [](const CrashContext& ctx) {
        // Send crash file to your server/service
    };```
    

Enabled cleanup, telemetry, logging, or remote upload logic right from the app!

πŸ›‘ Skips Debug Exceptions

Windows debug control exceptions (DBG_PRINTEXCEPTION_C, DBG_CONTROL_C) are now ignored to avoid false positives.

πŸ§ͺ Examples Added

  • 🧡 Example_ThreadCrash.cpp
  • βž— Example_divideByZero.cpp
  • πŸ’Ό Example_FullConfig.cpp β€” now includes onCrash
  • ☁️ Example_UploadCrash.cpp β€” demonstrates using onCrashUpload to simulate a remote crash report

πŸ›  Internal Improvements

  • Reorganized internal logic with clear inline documentation
  • Hardened Linux support for production use
  • Improved stack trace readability
  • Unified timestamp generation and path formatting

πŸ“ Documentation

  • Updated README.md with full platform details
  • New linux.md page under GitHub Pages
  • Refined screenshots, quick start, and crash log examples

πŸ“¦ CMake & CI

  • Enhanced CMake integration remains header-only
  • GitHub Actions CI runs automatically on push


🧭 Roadmap (Next Up)

  • macOS support via Mach exceptions
  • Remote crash uploads (via webhook or HTTPS endpoint)
  • .json crash logs
  • Crash viewer UI tool
  • Auto-rotate / cleanup of old log

🧠 Thanks & Community

Thanks to everyone who tested Linux support, contributed feedback, or opened issues. Let’s keep building it better β€” and safer.

If you like it, consider ⭐ starring the project!