64kramsystem / 64kramsystem/ghidra-vice-connector

Trace recording / time-travel debugging

Offen
#10 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
priority: low
Vorherrschende Sprache
Python
Sterne
1
Forks
0
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

## Description

Ghidra's trace model supports multiple snapshots, enabling time-travel debugging where users can scrub back through execution history. Currently the plugin overwrites the same snapshot on each stop.

## Proposed implementation

- Create a new snapshot on each stop event instead of overwriting (already using `trace.snapshot()`)
- Retain register and memory state per snapshot
- Let Ghidra's built-in timeline UI navigate between snapshots
- Add configurable limits (max snapshots, memory per snapshot) to avoid unbounded growth
- Optionally record memory diffs instead of full 64KB per snapshot

## Why this matters

Time-travel debugging is extremely powerful for understanding 6502 code behavior, especially for timing-sensitive code (raster effects, SID music, etc.) where you need to understand what happened N instructions ago.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Bei diesem Issue geht es darum, die Snapshot-Behandlung des Plugins im Trace-Modell zu ändern. Suche nach dem Handler für das Stop-Ereignis, in dem `trace.snapshot()` aufgerufen wird. Verstehe, wie der Register- und Speicherzustand derzeit erfasst und gespeichert wird. Überprüfe die Integration von Ghidras Timeline-UI und implementiere konfigurierbare Grenzen für die Aufbewahrung von Snapshots. Zum Testen muss das Plugin mit einem 6502-Ziel ausgeführt werden, um zu überprüfen, dass die Zeitreise-Navigation funktioniert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
devtools
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

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