Skip to content

Releases: swananan/ghostscope

GhostScope v0.1.3

09 Apr 11:58

Choose a tag to compare

GhostScope v0.1.3 Pre-release
Pre-release

Overview

GhostScope v0.1.3 focuses on making source-aware tracing easier to use, especially from the command line and in AI-assisted workflows.

This release significantly improves the CLI experience and introduces installable GhostScope skills, making it much easier to use AI to write GhostScope tracing scripts from source trees, DWARF-enabled binaries, and runtime context. Alongside that, we continued expanding Docker support, strengthened inline and DWARF handling, and fixed a number of important correctness and usability issues.

Highlights

  • Improved CLI script-mode usability with better output formatting, color controls, and clearer status reporting
  • Added embedded --script-help so scripting help is available directly from the ghostscope binary
  • Introduced installable GhostScope skills and curl-based installation
  • Made AI-assisted tracing workflows much more practical, helping users generate GhostScope scripts more easily
  • Expanded Docker and container support. See the Container Guide for PID namespace behavior, supported topologies, and current limitations.
  • Strengthened inline handling and DWARF resolution in optimized and origin-backed cases

Bug Fixes

This release also includes a broad set of fixes across the tracing pipeline, including:

  • Better error reporting for print builtin failures via ExprError
  • Cleaner separation between script output and status prompts
  • Fixes for scalar DWARF expression capture lengths
  • Correct trace event PID/TID ordering
  • .bss rebasing fixes and stronger global/static variable handling
  • Multiple DWARF and inline resolution fixes for optimized and edge-case builds

Thanks

Special thanks to @philipc for helping upgrade gimli and for identifying a critical bug that helped drive several of the DWARF correctness improvements in this release.

What's Next

Next, I will continue focusing on:

  • Improving DWARF analysis stability
  • Reducing startup-time overhead, especially during the initial DWARF analysis phase

If that work goes well, I plan to start exploring a new backtrace command built on eBPF-powered, DWARF-aware stack unwinding.

GhostScope v0.1.1-beta

04 Nov 14:58

Choose a tag to compare

Pre-release

What's changed

  • Release binaries no longer depend on the libffi dynamic library, making deployments lighter.
  • Enhanced scripting language with more user-friendly error messages.
  • Improved -t mode with support for probing global variables.
  • Better inline-function support: trace/info output now includes address indices and inline markers.
  • UI/tooling upgrades: source panel can be hidden via configuration, command parsing is more robust, and long trace messages auto-collapse.
  • Numerous bug fixes😁.

Quick Start: See our Tutorial to get started in 10 minutes.

Limitations and Constraints: please see Limitations Documentation.

GhostScope v0.1.0-beta

12 Oct 16:42

Choose a tag to compare

Pre-release

Overview

GhostScope is a runtime tracing tool that brings the simplicity of printf debugging to production systems. It leverages DWARF debug information and eBPF/uprobe technology to safely extract and display variable values, function arguments, complex data structures, and stack backtraces from running programs — all without stopping or modifying them.

"The most effective debugging tool is still careful thought, coupled with judiciously placed print statements." — Brian Kernighan

Quick Start: See our Tutorial to get started in 10 minutes.


⚠️ Beta Release Notice

This is a beta release for early testing and feedback.

Known Limitations

  • Language: Currently supports C language only. C++ and Rust basic features support coming soon.
  • Platform: x86_64 (amd64) only.
  • Optimized Builds: Detection is limited for heavily optimized binaries (e.g., -O2/-O3, LTO). Support is in progress and will improve in upcoming releases

For a complete list of current limitations and constraints, please see Limitations Documentation.