Home
Index
Code
Home
Index
Code
Subscribe
Sign in
Digital Grove
Demystifying Debuggers, Part 5: Instruction-Level Stepping & Breakpoints
Unpacking how kernel and CPU debugger mechanisms can be used to implement instruction-level stepping and breakpoints.
READ THE LATEST
Most Popular
View all
Untangling Lifetimes
Sep 23, 2022
•
Ryan Fleury
306
49
14
Multi-Core By Default
Oct 10, 2025
•
Ryan Fleury
191
38
6
Demystifying Debuggers, Part 1: A Busy Intersection
Dec 16, 2024
•
Ryan Fleury
163
7
3
Demystifying Debuggers, Part 2: The Anatomy Of A Running Program
Dec 23, 2024
•
Ryan Fleury
116
10
5
Programming Essays
View all
Multi-Core By Default
On multi-core programming, not as a special-case technique, but as a new dimension in all code.
Oct 10, 2025
•
Ryan Fleury
191
38
6
Programmers Are Users (Bad Performance Makes Everyone Less Efficient)
On the often-referenced notion of saving “programmer cycles” at the expense of CPU cycles.
Dec 6, 2024
•
Ryan Fleury
139
5
8
Upstream & Downstream
Separating computational cause from effect.
May 11, 2024
•
Ryan Fleury
40
2
1
Multi-Threading & Mutation
On mutation, how it subtly occurs in single-threaded code, and how it can disrupt the process of upgrading single-threaded code to being multi-threaded.
Mar 12, 2024
•
Ryan Fleury
94
5
4
Demystifying Debuggers
View all
Demystifying Debuggers, Part 5: Instruction-Level Stepping & Breakpoints
Unpacking how kernel and CPU debugger mechanisms can be used to implement instruction-level stepping and breakpoints.
Feb 21
•
Ryan Fleury
12
2
Demystifying Debuggers, Part 4: CPU Features & Debuggers
On CPU features that debuggers can use, like interruption instructions, debug registers, single-stepping mode, and more.
Feb 16
•
Ryan Fleury
14
3
Demystifying Debuggers, Part 3: Debugger-Kernel Interaction
On how kernels collect and expose information about program execution to debuggers.
Dec 28, 2024
•
Ryan Fleury
63
6
3
Demystifying Debuggers, Part 2: The Anatomy Of A Running Program
On the concepts involved in a running program. What happens, exactly, when you double click an executable file, or launch it from the command line, and…
Dec 23, 2024
•
Ryan Fleury
116
10
5
UI
View all
UI, Part 9: Keyboard and Gamepad Navigation
Techniques for supporting keyboard and gamepad navigation without overburdening builder code.
Feb 13, 2023
•
Ryan Fleury
24
2
UI, Part 8: State Mutation, Jank, and Hotkeys
Making the case for limiting the timeframe during which important state mutations can occur, making these mutations homogeneous, and how this idea can…
Aug 23, 2022
•
Ryan Fleury
32
3
UI, Part 10: Simple Single-Line Text Input
Many custom UIs don't implement common keyboard shortcuts in their single-line text fields. It doesn't have to be this way - let's look at a way to…
Jul 25, 2022
•
Ryan Fleury
26
3
UI, Part 7: Where IMGUI Ends
Exploring strategies for high-level interface instantiation entities (windows, tabs, panels). Making the case for why their state should not be managed…
Jul 6, 2022
•
Ryan Fleury
43
2
1
Culture
View all
The Magic of the Better Software Conference
Why BSC worked; why other conferences don't.
Jan 15
•
Ryan Fleury
80
34
5
The Marketplace Of Ideals
On Handmade, polarizing Internet debate, rational discussion, controversial personas, tribal conflict, and how they relate to the future of computing.
Jul 19, 2023
•
Ryan Fleury
82
11
7
Software Kingdoms
On economic principles, free & open source software, and paywalls.
Jun 21, 2023
•
Ryan Fleury
46
4
3
Regulation Cannot Save A Defeated Culture
On markets, regulatory capture, Big Tech, and tangibly improving the software world.
Jan 18, 2023
•
Ryan Fleury
24
9
All Programming
View all
Demystifying Debuggers, Part 5: Instruction-Level Stepping & Breakpoints
Unpacking how kernel and CPU debugger mechanisms can be used to implement instruction-level stepping and breakpoints.
Feb 21
•
Ryan Fleury
12
2
Demystifying Debuggers, Part 4: CPU Features & Debuggers
On CPU features that debuggers can use, like interruption instructions, debug registers, single-stepping mode, and more.
Feb 16
•
Ryan Fleury
14
3
Multi-Core By Default
On multi-core programming, not as a special-case technique, but as a new dimension in all code.
Oct 10, 2025
•
Ryan Fleury
191
38
6
Demystifying Debuggers, Part 3: Debugger-Kernel Interaction
On how kernels collect and expose information about program execution to debuggers.
Dec 28, 2024
•
Ryan Fleury
63
6
3
This site requires JavaScript to run correctly. Please
turn on JavaScript
or unblock scripts