Skip to content

Latest commit

 

History

History
1609 lines (1478 loc) · 88 KB

debugging.md

File metadata and controls

1609 lines (1478 loc) · 88 KB

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

See also:

Contents


General


Standard Libraries


Readings

Books

Books, Books Reviews

Concurrency

  • Interactive Debugging of Concurrent Programs under Relaxed Memory Models

Probe Effect

Implementation

Implementation: 2023

Correctness

Correctness: 2000-2009

Correctness: 1990-1999

Testing

Reverse Debugging

See also: RR, WinDbg - Time Travel Debugging

Software Engineering

Transparency


Software

GDB

GDB: Projects

GDB: Projects: Decompilation

GDB: Projects: Editor Integration

GDB: Projects: Memory Debugging

GDB: Projects: Plotting

GDB: Projects: Profiling

GDB: Readings

GDB: Readings: Python API

GDB: Readings: Python API: TUI

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
  • 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

Stack Trace & Unwinding


Talks

2023

2021

2019

2018

2017

2016

2015

2014

2011