Breakpoint Management & Views
Overview
Breakpoints are the primary mechanism for stopping execution in the debugger. TEMU provides several tightly‑integrated user interfaces for creating, inspecting and controlling breakpoints:
-
Gutter icons in disassembly and source‑code panes.
-
A searchable breakpoint tree with context and properties.
-
Visual cues (colours, hovers) and a context menu for fine‑grained control.
This document explains how to use those features from the user’s perspective. No knowledge of the underlying code is required; the descriptions concentrate on what you can do and how the interface behaves.
Breakpoint terminology
A disassembly breakpoint refers to a specific memory address. A line breakpoint refers to a source‑file/line pair. All breakpoints belong to a context (e.g. a software context or thread). Enabled breakpoints are active – the debugger will stop when they are hit. Disabled breakpoints remain visible but won’t pause execution.
Adding and removing breakpoints
Using the gutter
When a disassembly or source pane is visible a narrow “gutter” runs down the left‑hand side of the text.
-
Create/toggle – click the circle in the gutter next to an instruction (disassembly) or a source line.
-
An empty circle indicates no breakpoint; clicking it sets a new one.
-
A filled red circle denotes an enabled breakpoint; clicking it disables or removes the breakpoint depending on its current state.
-
Hover feedback – moving the mouse over the gutter shows a pale marker even if no breakpoint exists. This makes it easy to target a line.
Breakpoint tree view
Open the “Breakpoints” panel (normally docked alongside other tool windows). It lists all breakpoints grouped by context, address, or file.
-
Add – use the toolbar
+button, choose “Add breakpoint” and enter an address or file/line. The current context is used by default. -
Enable/disable/delete – select one or more entries and use the toolbar buttons or the right‑click context menu.
-
Navigate – double‑click an entry or choose “Go to” from the menu; the disassembly/source view will scroll to that location and make it current.
-
Copy/Clear All – the menu provides clipboard copy and a “clear all” command to remove everything in one go.
Seeing breakpoints in the views
Colours & icons
-
Enabled breakpoints appear as a solid red circle in the gutter.
-
Disabled breakpoints are grey, with a diagonal line through the circle.
-
Hover – when the mouse is over a line without a breakpoint, a faint red dot previews where a new breakpoint would appear.
-
Execution point – the currently executing line is highlighted with a distinct background colour; this is separate from the breakpoint indicator.
These visual cues are theme‑aware.
Disassembly view behaviour
The gutter plugin keeps breakpoints synchronized with the underlying model, so enabling or removing a breakpoint anywhere (gutter/tree/script) updates the display immediately.
Source view behaviour
-
Line‑breakpoints appear as circles in the gutter beside the source line.
-
Clicking the gutter toggles the breakpoint for that line.
-
Multiple files – each open file has its own gutter and breakpoints; the tree view reflects all of them.
When you set a line breakpoint, the controller attempts to map the local file path to the target’s path using the project’s path‑mapping rules – this means breakpoints survive rebuilds and directory renames.
Working with breakpoint properties
Property dialogs let you:
-
Give a breakpoint a condition.
-
Specify whether it should trigger only after a certain number of hits.
-
Associate it with particular threads or contexts.
-
Add TEMU and Python scripts to individual breakpoints, these scipts will trigger in the emulator not the Debugger.
See the TEMU scripting documentation: Scripting.
Access the dialog by right‑clicking a breakpoint in the gutter or selecting “Edit” from the tree‑view context menu.
Tips & tricks
-
Synchronize – if you’ve added breakpoints via a script or another tool, click the “Refresh” button in the tree view (or use the menu) to pull them into the UI.
-
Disable all – use the tree view’s toolbar menu to quickly disable all breakpoints without deleting them.
Troubleshooting
-
If a breakpoint does not appear where expected, verify that the disassembly pane is displaying the context you think it is (check the context selector at the top of the view).
-
Line breakpoints on generated code may not align with the source; use the navigator to jump to the physical address before setting one.

