cpplinks/debugging.md at master · MattPD/cpplinks

C++ links: debugging: articles, documentation, software, and talks.

See also:

Contents


General


Standard Libraries


Readings

Books

Books, Books Reviews

Concurrency

Probe Effect

Implementation

Implementation: 2026

Implementation: 2025

Implementation: 2023

Correctness

Correctness: 2000-2009

Correctness: 1990-1999

Testing

Reverse Debugging

See also: RR, WinDbg - Time Travel Debugging

Reverse Debugging: Talks

Software Engineering

Transparency


Software

Software: Editor Integration

Software: Virtual Machine Introspection

GDB

GDB: Projects

GDB: Projects: Decompilation

GDB: Projects: Editor Integration

GDB: Projects: Memory Debugging

GDB: Projects: Plotting

GDB: Projects: Profiling

GDB: Readings

GDB: Readings: JIT Interface

GDB: Readings: Pretty Printing

GDB: Readings: Python API

GDB: Readings: Python API: TUI

GDB: Readings: Reverse Debugging

GDB: Talks

LLDB

LLDB: Projects

LLDB: Projects: Editor Integration

LLDB: Readings

LLDB: Talks

RR

RR: Projects

RR: Readings

OS-specific

iOS

Linux

Linux: Readings

Linux: Talks

macOS

Windows

Windows: Readings

Visual Studio Debugger

WinDbg

WinDbg: Readings

WinDbg: Projects

WinDbg: Talks

WinDbg: Time Travel Debugging

Crash Analysis & Reporting

  • Breakpad: a set of client and server components which implement a crash-reporting system
  • CASR: Crash Analysis and Severity Report
    • Collect crash reports, triage, and estimate severity
    • https://github.com/ispras/casr
    • "CASR is a set of tools that allows you to collect crash reports in different ways. Use casr-core binary to deal with coredumps. Use casr-san to analyze ASAN reports or casr-ubsan to analyze UBSAN reports. Try casr-gdb to get reports from gdb."
    • "Crash report contains many useful information: severity (like exploitable), OS and package versions, command line, stack trace, register values, disassembly, and even source code fragment where crash appeared. Reports are stored in JSON format. casr-cli is meant to provide TUI for viewing reports. Reports triage (deduplication, clustering) is done by casr-cluster. Triage is based on stack trace comparison from gdb-command. casr-afl is used to triage crashes found by AFL++."
    • Casr-Cluster: Crash Clustering for Linux Applications
    • Sydr-Fuzz: Continuous Hybrid Fuzzing and Dynamic Analysis for Security Development Lifecycle
  • Core Explorer: A DWARF parser and core dump analyzer that runs in your browser
    • A static analyzer for dynamic memory. Analyze core dumps to find ODR violations, memory leaks, and use-after-free hazards. List all objects, types, allocations, and threads and visualize the relationships between them.
    • https://github.com/core-explorer/core-explorer/
  • Crashpad: a crash-reporting system
  • dump_syms: Rewrite of breakpad dump_syms tools in Rust
    • a command-line utility for parsing the debugging information the compiler provides (whether as DWARF or STABS sections in an ELF file or as stand-alone PDB files) and writing that information back out in the Breakpad symbol file format.
    • https://github.com/mozilla/dump_syms
  • llvm-crash-analyzer: A Tool for the Program Analysis of Corefiles
  • rust-minidump: Type definitions, parsing, and analysis for the minidump file format

Stack Trace & Unwinding

Stack Trace & Unwinding: Readings

Stack Trace & Unwinding: Software

Stack Trace & Unwinding: Talks


Talks

2023

2021

2019

2018

2017

2016

2015

2014

2011