A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/keithpotz/CrashCatch below:

keithpotz/CrashCatch: Cross-Platform, Efficient easy to integrate crash reporting library for modern C++

A cross-platform, efficient, and easy-to-integrate crash-reporting library for modern C++ applications.

CrashCatch is a lightweight, single-header C++ crash-reporting library for generating .dmp and .txt crash logs โ€” complete with stack traces, diagnostics, optional cleanup hooks, and user dialogs.

CrashCatch provides simple and powerful crash diagnostics for C++ applications on Windows and Linux, with macOS support planned. Whether you're building GUI apps, system tools, or CLI utilities, CrashCatch helps you catch and log critical failures with minimal setup.

As of v1.2, CrashCatch supports rich crash context capture and includes optional post-crash upload integration.

OS Supported Crash Handling Method Windows โœ… Yes SetUnhandledExceptionFilter + MiniDump Linux โœ… Yes POSIX signals (signal()) + backtrace macOS ๐Ÿšง Planned POSIX + Mach exceptions
CrashCatch/
โ”œโ”€โ”€ include/
โ”‚   โ””โ”€โ”€ CrashCatch.hpp       # Single-header crash handler
โ”œโ”€โ”€ examples/
โ”‚   โ””โ”€โ”€ CrashCatchExample.cpp
โ”œโ”€โ”€ LICENSE                  # MIT License
โ”œโ”€โ”€ README.md                # Project documentation
โ””โ”€โ”€ CONTRIBUTING.md          # Contribution guidelines

CrashCatch is 100% header-only.

To integrate:

  1. Copy include/CrashCatch.hpp into your project
  2. Add #include "CrashCatch.hpp" in your code
  3. (Optional) Use CrashCatch::enable() or the CRASHCATCH_AUTO_INIT macro
  4. For Linux inlcude -ldl or -rdynamic for deeper Linux symbole resolution if desired

โœ… No build steps.
โŒ No .lib, .dll, or .so.
๐Ÿ”’ Just one .hpp file, ready to use.

Copy CrashCatch.hpp into your project and include it:

#include "CrashCatch.hpp"

## QuickStart
### Zero Config (Auto-init)
```cpp
#define CRASHCATCH_AUTO_INIT
#include "CrashCatch.hpp"

int main(){
    int* ptr = nullptr;
    *ptr = 42; // simulated crash
}
#include "CrashCatch.hpp"
int main(){
    CrashCatch::enable(); //Initalizes with default config

    int* ptr = nullptr;
    *ptr = 42; // simulated crash
}
#include "CrashCatch.hpp"

int main(){
    CrashCatch::Config config:
    config.appVersion = "1.0.0";
    config.buildConfig = "Release";
    config.additionalNotes = "This is a test build.";
    config.onCrash = []{
        std::cout << "Cleaning up before crash...\n"/
    };
    config.showCrashDialog = true;

    CrashCatch::initalize(config);

    int* ptr = nullptr;
    *ptr = 42; // simulated crash
}

You can install CrashCatch with:

cmake -Bbuild -DCMAKE_INSTALL_PREFIX=install
cmake --build build --target install
find_package(CrashCatch REQUIRED)
target_link_libraries(MyApp PRIVATE CrashCatch::CrashCatch)

When a crash occurs, CrashCatch generates the following files in the ./crash_dumps/ directory:

๐Ÿ“‹ Example .txt Includes:
Crash Report (Windows)
============

Timestamp: 2025-04-01_14-23-56
Dump File: ./crash_dumps/crash_2025-04-01_14-23-56.dmp
Exception Code: 0xC0000005
Thread ID: 12345

Stack Trace:
  [0]: MyApp::SomeFunction + 0x15
  [1]: MyApp::MainLoop + 0x2a
  [2]: WinMain + 0x10
  [3]: __tmainCRTStartup + 0x20
  [4]: BaseThreadInitThunk + 0x14
  [5]: RtlUserThreadStart + 0x21

Environment Info:
App Version: 1.0.0
Build Config: Release
Architecture: x64
Executable: C:\Path\To\YourApp.exe
Uptime (s): 182
Notes: Test build
Crash Report (Linux)
============
Timestamp: 2025-04-04_15-42-18
Signal: Segmentation fault (11)

Stack Trace:
  [0]: ./CrashCatchTest(+0x1234)
  [1]: libc.so.6(+0xdeadbeef)
  [2]: start_thread
  [3]: __libc_start_main

Environment Info:
App Version: 1.1.0
Build Config: Release
Platform: Linux
Executable: /home/user/CrashCatchTest

CrashCatch provides detailed crash metadata via CrashContext:

struct CrashContext{
  std::string dumpFilePath;
  std::string logFilePath;
  std::string timestamp;
  int singalOrCode;
};
You can use both in onCrash and onCrashUpload

CrashCatch is actively being developed with the goal of becoming a robust, cross-platform crash-handling solution.

We warmly welcome contributions! Check CONTRIBUTING.md for more information.

CrashCatch is licensed under the MIT License. You're free to use, modify, and distribute it within your projects.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4