Skip to content

v0.8.0 — atrace: system-level library call tracing

Choose a tag to compare

@tbdye tbdye released this 21 Mar 00:30
· 4 commits to main since this release
948680d

What's new

atrace — a system-level library call tracing facility for AmigaOS. A resident module patches shared library function vectors at the machine code level, capturing every call with arguments, return values, caller task name, and microsecond timing. Events stream to the client in real time.

Tracing

  • 99 traced functions across 7 libraries (exec, dos, intuition, bsdsocket, icon, workbench, graphics)
  • Four output tiers — Basic (49), Detail (+14), Verbose (+4), Manual (13) — for progressive verbosity control
  • Per-opener bsdsocket base patching eliminates race conditions with dynamically opened socket libraries
  • Symbolic constant decoding (SO_, MSG_, FION*) and sockaddr_in capture for network functions
  • Pointer resolution (device names, port names, screen titles), handle tracking (Open/Lock paths annotated on Close/UnLock), CLI command name resolution
  • IoErr capture on dos.library failures
  • trace run launches a program and traces only its library calls with automatic lifecycle management
  • Interactive terminal viewer with filtering, pause/scroll-back, statistics, tier switching, and save-to-file

Shell and client

  • Local filesystem tab completion and tilde expansion for get/put/append commands
  • Interactive shell with Amiga path tab completion, colorized output, inline editing, and client-side utilities (find, tree, grep, diff, du, watch)
  • Python library gains 12 trace-related methods on AmigaConnection for scripting and automation
  • Windows client support (PowerShell launcher)

Packaging and documentation

  • LHA distribution archive for Aminet with Workbench icon
  • 38-document suite covering tracing (20 docs), interactive shell (15 docs), CLI (3 docs), plus installation, configuration, agent guide, and protocol reference
  • All documentation verified against source code

Bug fixes

  • STAT added to CAPABILITIES command list
  • shell_fixture converted to module scope to prevent daemon memory exhaustion during test runs
  • DIR RECURSIVE on volume roots, shell cache invalidation fixes

Testing

1378 tests pass, 10 skipped, 0 failures. Daemon builds clean with zero warnings.

Installation

See the installation guide or the included amigactld.readme for quick-start instructions.