64kramsystem / 64kramsystem/ghidra-vice-connector
Conditional breakpoints via VICE checkpoint conditions
- Vorherrschende Sprache
- Python
- Sterne
- 1
- Forks
- 0
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
## Description
VICE checkpoints support conditions (`has_condition` field in `CHECKPOINT_INFO`). The BMP protocol provides `CMD_CONDITION_SET` (0x16) to attach monitor expressions to checkpoints (e.g., `A == $42`, `.PC == $C000`).
## Proposed implementation
- Add `condition_set(checkpoint_number, expression)` to `ViceBmpClient`
- Add a `set_breakpoint_condition` remote method in `methods.py`
- Display the condition expression as an attribute on breakpoint objects in the trace
- Optionally parse/validate conditions before sending
## Why this matters
Conditional breakpoints are essential for debugging loops and interrupt handlers on the C64, where unconditional breakpoints fire too frequently to be useful.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Sieh dir die Klasse ViceBmpClient und methods.py an, um die bestehende Checkpoint- und Befehlsstruktur zu verstehen. Der Befehl CMD_CONDITION_SET (0x16) muss implementiert werden. Füge zunächst die Methode condition_set zu ViceBmpClient und die entsprechende Remote-Methode hinzu. Teste dies, indem du eine Bedingung für einen Checkpoint setzt und überprüfst, dass sie im Trace erscheint.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- devtools
- Issue-Typ
- Feature
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100