64kramsystem / 64kramsystem/ghidra-vice-connector

Conditional breakpoints via VICE checkpoint conditions

Offen
#2 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
priority: high
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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.