Advanced Linux C++ Debugging Techniques with GDB Tools

Added:

Debugging Overview
Debugging Mindset
GDB Basics
GDB Python
GDB Internals
Advanced GDB
GDB Techniques
Valgrind
Sanitizers & Replay
Other Tracers

Debugging Overview

0:00
Playing Section
  • 1

    Sets the scope: focusing on debugging tools, not generic advice.

  • 2

    Clarifies exclusions: testing, avoiding bugs, and performance profiling.

  • 3

    Stresses debugging's importance and underappreciation in programming.

Fundamental C++ memory management concepts, including stack versus heap allocation, pointers, and undefined behavior.
Basic proficiency with GDB, including setting breakpoints, stepping through code, and examining backtraces.
Familiarity with the Linux terminal, compilation processes using GCC/Clang, and the purpose of debugging symbols (-g flag).
A basic understanding of operating system concepts such as system calls, processes, and threads.
Post-mortem debugging and core dump analysis of production applications using GDB and Python-scripted automation.
Advanced kernel-level tracing and monitoring using eBPF (Extended Berkeley Packet Filter) and bpftrace.
Performance profiling and micro-architectural bottleneck analysis using Linux 'perf' and Intel VTune.
Integrating sanitizers (ASan, TSan, UBSan) into continuous integration (CI/CD) pipelines for automated memory and concurrency safety verification.
38.7K views715likes58:25@CppConOriginal Release: 2018-10-18

This presentation covers advanced debugging tools and techniques for Linux C++ development, including GDB features like Python integration, dynamic printf, watchpoints, and reversible debugging with process record and rr; memory error detection tools such as valgrind and compiler sanitizers; and system tracing utilities including ftrace, strace, ltrace, and perf trace. The talk emphasizes that debugging is the limiting factor in program quality and that experienced programmers develop valuable skills through understanding these tools.