Skip to content

v0.2.0 — typed analysis and object namespace

Choose a tag to compare

@glslang glslang released this 13 Sep 16:22
· 114 commits to main since this release
Immutable release. Only release title and notes can be modified.

crates.io · docs.rs

[dependencies]
dbgscope = "0.2.0"

This release adds typed instruction analysis, kernel object namespace queries, breakpoint management and crash-event reads, and fixes live-target arrival and interrupt handling.

Highlights

  • Decode x86/x64 operands, control flow, privilege requirements, effects, conditions and register writes from instruction bytes. decode_range decodes a span from one memory read; effective_processor_type, function_extent and symbol_for expose the context needed to interpret it. ARM64 instruction semantics remain unsupported.
  • Resolve kernel object paths, list directories and read symbolic-link targets through the new object module. Partial listings distinguish unreadable entries from malformed ones, and callers can stop a walk with Namespace::halting.
  • Create, replace, enable and remove breakpoints through typed specifications, including data watchpoints and read-back of the watched region.
  • Read exception events and stored dump contexts as values, and walk the recorded crash stack with stack_frames_from without changing the selected thread or scope.
  • Deliver live-target arrivals to the opener waiting for them, distinguish concurrent launches, scope interrupts to their operation, and invalidate saved contexts when the session is replaced. Launched console programs receive a console without opening a desktop window.
  • Stop pool tag searches at a requested match threshold and report the partial result without caching it as complete.

Migration from 0.1

  • DebugEngine is no longer Send or Sync. Create and use it on the same thread; use InterruptHandle for interruption from another thread.
  • The public Breakpoint wrapper is removed. Use set_breakpoint, remove_breakpoint and enable_breakpoint with breakpoint IDs.
  • Instruction and BreakpointInfo gain fields, and public enums gain variants. Update struct literals and exhaustive matches.

See the full changelog for detailed behavior and limitations.

Changes: v0.1.0...v0.2.0