Skip to content

Rewind64 v0.2.9 (Linux x86-64 experimental)

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Oct 04:43
b78d486

Rewind64 v0.2.9 — experimental Linux x86-64 pre-release

Explore execution. Trace every instruction. Understand the past.

This milestone upgrades the bounded interactive RIP history to show a verified cumulative instruction-step number for each sampled address and optionally the last N observations. The debugger remains experimental and forward-only.

New: step-numbered history [N] / h [N]

rewind64> step 3
...
rewind64> history 2
RIP history [0]: 0x0000000000401002 step=2
RIP history [1]: 0x0000000000401003 step=3
rewind64> h 1
RIP history [0]: 0x0000000000401003 step=3
  • history and h with no count still print all available samples (at most 16) in chronological order.
  • history N and h N accept a strict decimal N from 1 to 16, selecting the most recent N entries, oldest first. If the session has fewer than N available, all current entries are displayed.
  • Each entry now has the cumulative verified instruction-step number. The initial post-exec stop is step=0; subsequent successful steps are labeled step=1, step=2, etc.
  • Count parsing rejects zero, 17+, signs, leading zeros, extra whitespace and trailing arguments without resuming the stopped tracee.
  • The debugger stores at most 16 pairs of RIP and step number in bounded in-memory rings, evicting old samples together on wraparound. Read-only commands, invalid input and application signal-delivery stops are not recorded as successful steps.

Tests and packaging

The expanded Bash/native NASM integration suite has 164 regression checks on Linux x86-64, including 12 new scenarios for count parsing, newest-N filtering, step-label consistency across ring wraps, signal handling, code inspection and EOF. CI runs on Ubuntu 22.04 and 24.04; the pre-release workflow repeats native build and tests before packaging the .tar.gz Linux x86-64 executable and SHA256SUMS.txt. No Python is required.

Running Rewind64

./rewind64 run --interactive /path/to/your/authorized/program
./rewind64 run --interactive --changes-only /path/to/your/authorized/program

Other interactive commands include step [1..16]/s, regs/r, status/i, code/x, bytes [1..8]/b, stack/k, mem 0xHEX [1..4]/m, continue/c, help and quit/q.

Important limits

History records only sampled instruction pointer addresses and step numbers. It is not a full CPU or memory state trace and cannot rewind execution. There is no breakpoint engine, process attachment, Windows/macOS backend, multi-thread tracing, execution recording, deterministic replay, or stable release. Linux ptrace permissions apply. Debug only targets you own or are authorized to inspect. Addresses and memory output may contain sensitive information.

License: Boost Software License 1.0. Source: https://github.com/sanskarIN/Rewind64