Skip to content
New this month 24 fresh C++, C#, F#, JavaScript, TypeScript and Lua courses just landed. Browse new releases Use code WELCOME10 for 10% off your first order · 14-day refund

Debug Like a Senior: Breakpoints, Core Dumps and git bisect

A repeatable method for finding any bug, plus the tools that make it fast.

Rated 5.0 out of 5 from 2 reviews 23 students

DO Created by Dimitri Orlov

  • Last updated August 2026
  • English
  • 3h 52m of material
  • 29 lessons

What you will learn

8 concrete outcomes

Every bullet below is something you will have built, shipped or be able to explain by the time you finish the last lesson.

  • Apply a repeatable method: reproduce, minimise, hypothesise, falsify
  • Use conditional breakpoints, watchpoints and live expression evaluation effectively
  • Read a stack trace and a core dump and extract the useful information
  • Find the offending commit automatically with git bisect run
  • Instrument code with structured logging and tracing instead of print statements
  • Catch memory and threading bugs with AddressSanitizer and ThreadSanitizer
  • Debug asynchronous and browser code with the devtools performance and network panels
  • Investigate production issues safely without disturbing running traffic

Course curriculum

6 modules · 29 lessons · 3h 52m of material

6 lessons running 48m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

6 lessons running 50m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

5 lessons running 40m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

4 lessons running 30m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

5 lessons running 40m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

3 lessons running 24m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

6 modules · 29 lessons

3h 52m total length

Requirements

Short list, and deliberately so. If you meet these you can start today.

  • You write code regularly in any language; examples use C++ and JavaScript
  • A debugger available, such as gdb, lldb, Visual Studio or Chrome devtools
  • A repository where you can practise the bisect exercises

About this course

Debugging is treated as a talent when it is actually a method. Senior developers are not luckier, they narrow the search space systematically instead of changing lines to see what happens. This course teaches that method and then the tools that make each step faster.

The method comes first: reproduce reliably, shrink to a minimal case, form a hypothesis that can be falsified, then use the tool that falsifies it fastest. You will apply it to a set of prepared bugs, including a race condition, a memory corruption, an off-by-one in a rarely taken branch, a dependency upgrade regression and a bug that only appears in production configuration.

The tooling modules cover interactive debugging beyond stepping, conditional breakpoints, watchpoints, evaluating expressions, changing values live, and reverse debugging with rr. You also learn to read a core dump and a stack trace properly, use logging and tracing as an intentional instrument rather than scattered print statements, run git bisect with an automated test to identify the offending commit, and apply sanitizers and the browser devtools performance panel. The closing module covers debugging in production without making things worse.

Frequently asked questions

Still unsure about something? Write to misteryjj100@gmail.com and a human answers, usually the same working day.

The method is universal. Demonstrations use C++ and JavaScript because they cover both native and managed debugging, and the tool equivalents for other stacks are listed.

No. The debugger module starts from launching a program under gdb and lldb, and the same techniques are shown in Visual Studio and VS Code.

The tracing and production modules cover correlation identifiers and span-based tracing, which is the part that applies to multi-service debugging.

Checkout is handled on our provider's secure payment page. The moment your payment clears we email your personal access link and access code to the address you used at checkout, and the same link appears in your account library. There is nothing to install and nothing to wait for.

Email misteryjj100@gmail.com within 14 days of your purchase, quote your order number, and we refund the full amount to your original payment method. No form to fill in and no questions about how much of the course you watched.

What students say

Reviews are written by people who bought this course. We publish the critical ones too.

5.0

Rated 5.0 out of 5

Course rating · 2 reviews

Rating distribution

  • 5 stars 100%
  • 4 stars 0%
  • 3 stars 0%
  • 2 stars 0%
  • 1 star 0%
  • SV

    Sanna Virtanen

    Software engineer

    Mar 2026
    Rated 5.0 out of 5

    The method is the valuable part

    Reproduce, minimise, falsify. It is on a sticky note on my monitor now. I used to thrash for hours; writing down what I am trying to disprove before touching anything gets me there in a fraction of the time.
  • DF

    Diego Fuentes

    Backend engineer

    Nov 2025
    Rated 5.0 out of 5

    I had never set a watchpoint

    Ten years with a debugger open and I only ever used breakpoints and step-over. Turns out a watchpoint is the tool for this field changes and I do not know who is changing it, which is a bug I hit about monthly. The automated bisect chapter is excellent too.

Your instructor

DO

Dimitri Orlov

Rust engineer and performance specialist

  • 64 students taught
  • 4 courses published
  • 4.8 instructor rating
  • Rust
  • Low-level programming
  • Performance tuning
  • Embedded systems

Dimitri writes Rust for networking gear and battery-powered devices, and came to it after a long stretch of production C he does not miss. He teaches ownership and borrowing by showing the exact C bug each rule prevents, which makes the borrow checker feel like a colleague rather than an obstacle. His courses build a real binary — a parser, a server, a no-std firmware image — and then take a profiler to it. He reviews for a Rust working group and speaks at systems meetups.

$21 USD

One-time payment · lifetime access

The WisdomCharms dispatch

One useful email a week. No fluff, no spam.

New course releases, discount codes before anyone else, and a short, practical breakdown of one technique — a prompt pattern, a C++ idiom, a TypeScript trick — that you can use the same day.

  • Subscriber-only launch pricing
  • Unsubscribe in one click
  • We never sell your address

By subscribing you agree to our Privacy Policy. Questions? Write to misteryjj100@gmail.com.