CrashAnalyzer is a C++23 project focused on reliable crash handling and debugging workflows. It integrates modern tools such as GDB, Valgrind, perf, flame graphs, and systemd‑coredump to capture and analyze segmentation faults. The design emphasizes portability, with a structure that can extend to Windows and macOS, ensuring consistent observability across platforms.
- Intentional crash (
*p = 42) to validate observability - Core dump capture and analysis with GDB
- Memory error detection using Valgrind
- Performance visualization with perf + flame graphs
- Automated CI/CD pipeline via GitHub Actions
- OS: Ubuntu 24.04.1 (running in Oracle VirtualBox)
- Compiler: GCC 13
- Build Tools: CMake
- Debugger: GDB
- Observability Tools: Valgrind, perf, flame graphs
- Virtualization: Oracle VirtualBox (hosted on Windows)
- Language: C++23
- Compiler: GCC 13.3.0
- Debugger: GDB 15.0.50
- Build Tools: CMake 3.28.3
- Observability Tools: Valgrind 3.22.0, perf 6.17.9
This project uses GitHub Actions to automatically build and test the code.
- Trigger: Runs on every push and pull request to
main - Environment: Ubuntu-latest runner
- Steps: Checkout → Install dependencies → Configure → Build → Run Valgrind
- Workflow file:
.github/workflows/build.ymlLogs and results are available in the Actions tab of this repository.
- Resources: 8 GB RAM, 4 CPUs, 40 GB disk
- Graphics: VMSVGA, 128 MB video memory, 3D acceleration enabled
- Networking: NAT (Intel PRO/1000 MT Desktop)
- Integration: Shared folder enabled, bidirectional clipboard, AZERTY keyboard layout
cmake -S . -B build
cmake --build build