Skip to content

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 30 Jul 04:04
· 219 commits to main since this release

Added

  • Sample native allocations across process threads with independent byte-sampling
    state, monotonic session thread identities, stable overflow merging, and
    per-thread spark Viewer roots.
  • Patch supported allocator relocations in the Linux main executable and loaded
    ELF modules, with REL/RELA validation, RELRO permission restoration, periodic
    rescans, and unload-safe cleanup.
  • Export distinct allocation hook, success, sampling-point, enqueue, drop,
    queue high-water, live-index, thread, module, and truncation metadata.

Fixed

  • Avoid Windows loader-TLS recursion by keeping allocation-hook thread state in a
    preallocated native TLS registry and bypassing hooks while a thread's static TLS
    vector is being constructed.
  • Preserve sampled allocation identity across cross-thread free and realloc,
    including failure, zero-size, in-place, moved, and address-reuse cases.
  • Use a bounded multi-producer allocation event queue on Linux, enforce the declared
    tick-event capacity on both native backends, and shard their live-allocation
    indexes.
  • Suppress allocation sampling from aggregation, module scanning, export, and
    symbolization control paths.
  • Quiesce active Windows detours before restoring allocator entry points during
    shutdown, including allocations originating in other loaded DLLs.

Limitations

  • Allocation coverage does not include static or private allocators,
    VirtualAlloc/VirtualFree, mmap/munmap, or module lifetimes that begin and
    end entirely between Linux rescans.

Full Changelog: v0.3.0...v0.3.1