Skip to content

Rewind64 v0.2.11 (Linux x86-64 experimental)

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Oct 07:37
16edd04

Rewind64 v0.2.11 — experimental Linux x86-64 prerelease

Explore execution. Trace every instruction. Understand the past.

This experimental update provides a bounded, read-only history of validated application signal-delivery stops for the single self-launched Linux x86-64 tracee.

New: signals / g

At an interactive debugger prompt:

rewind64> signals
Signal history: no validated signal-delivery stops yet.
rewind64> step
Interactive signal stop: signal 4 pending; choose step, continue or quit.
rewind64> g
Signal history [0]: signal=4 si_code=2 step=0

The output is illustrative; signal numbers and si_code depend on the target and the Linux kernel.

  • Records only validated signal-delivery stops from PTRACE_GETSIGINFO: signal number, signed siginfo_t.si_code, and completed instruction-step count at the time of observation.
  • Holds the latest eight observations in a fixed 128-byte, debugger-local circular buffer, displayed oldest-to-newest. The oldest stop is replaced when full.
  • Does not count synthetic PTRACE_SINGLESTEP traps, exec/exit ptrace events, invalid commands, or read-only memory/register inspections.
  • Reading signals / g never resumes the tracee, forwards pending signals or modifies registers and memory.
  • Exact commands also work as a final EOF-terminated input line without a newline. Unexpected arguments are rejected as unknown commands.
  • events / e remains available for total observed and submitted forward signal counts, plus pending signal and ptrace event counters. Those counts measure different actions and need not match.

Validation

190/190 native Assembly/Bash integration tests passed on both Ubuntu 22.04 and Ubuntu 24.04 on the corrected development code, including 13 new signal-history regression cases. The release workflow rebuilds and runs make clean && make test before publishing a Linux x86-64 executable archive and its SHA256SUMS.txt manifest. No Python is needed.

Usage

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

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

Limitations and safety

Rewind64 is experimental and forward-only, for Linux x86-64 single self-launched targets. It does not offer process attachment, breakpoint insertion, source-level debugging, multi-thread tracing, disassembly, persistent recording, historic memory or CPU-state restoration, replay, or reverse stepping. Use it only on programs you own or have authorization to debug. It is not a sandbox; memory and signal diagnostics can expose sensitive process information. Normal Linux ptrace permission rules apply.

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