Skip to content

Releases: neon-sunset/dotheap

Dotheap 0.2.4

Choose a tag to compare

@neon-sunset neon-sunset released this 27 Oct 09:41
3114917

Fix a false heap-integrity finding in reused Satori huge regions. Dotheap now stops at the huge object and reports the unused committed tail separately, including when that tail contains stale object-like data. Existing analysis caches are rebuilt automatically.

The regression tests cover stale and zeroed tails, leading free-space fillers, cached reopening, and invalid object sizes, MethodTables, and region bounds on x64 and ARM64.

Dotheap 0.2.3

Choose a tag to compare

@neon-sunset neon-sunset released this 27 Oct 08:08
63ba5ed
  • Recognize GC storage in recent Satori builds that use sharded allocator queues and work lists. Existing analysis caches rebuild with the corrected classification.
  • Manage captured dumps in the Cache window, including dumps without an analysis cache. Clear analysis separately or delete a captured dump and its associated cache files. Dumps open in the Viewer remain protected.

Dotheap 0.2.2

Choose a tag to compare

@github-actions github-actions released this 26 Oct 19:07
cc9d2cc

Dotheap now groups static fields by their declaring type in Summary, Dominators and Roots. Expand a type to see its fields; thread-static fields show combined retained memory across threads and expand to show individual threads.

In Types, runtime storage arrays now expand to show the named static fields they contain. Shared allocations are counted once under their common owner, and allocation-type totals are preserved.

Static field discovery includes closed generic types, types without heap instances, and thread-local storage.

This release also fixes incomplete row separators in Dominators and blocked-thread classification when abbreviated framework method names were mistaken for application code.

Update the CLI and Viewer through Homebrew:

brew upgrade --cask dotheap

Dotheap 0.2.1

Choose a tag to compare

@github-actions github-actions released this 26 Oct 15:36
95c3f6f

Dotheap now supports .NET and ASP.NET Core 10.0.0–10.0.14, including intermediate patch releases.

The released .NET 10.0.0 CoreLib uses an RTM build suffix. Dotheap now recognizes that version correctly, while retaining warnings for previews, release candidates, and versions outside the supported range.

Update the CLI and Viewer through Homebrew:

brew upgrade --cask dotheap

Dotheap 0.2.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 11:36
8285193

Dotheap 0.2.0 adds live capture on Apple silicon macOS. It takes a kernel copy-on-write snapshot so the application keeps running while its memory is read and compressed. Captures include residency data, and the Viewer lists both .NET and other applications, sorted by memory use.

Other changes since 0.1.1:

  • Correct native ownership labels and include native memory in retained totals for managed types. Dominators show combined retained memory with the managed or native portion in parentheses.
  • Open dumps with finer progress reporting. Run independent findings in parallel and let symbol downloads finish without delaying unrelated analysis.
  • Convert sequentially compressed dumps to independently readable frames, with options to keep the original or replace it after validating the converted file.
  • Align managed and native memory layouts, improve inspector responsiveness and text wrapping, and add type-name display settings.
  • Build the Viewer with the macOS 27 SDK.

Update the CLI and Viewer through Homebrew:

brew upgrade --cask dotheap

Linux and Windows CLI packages are also included. See the README for installation and capture options for permissions and pauses.

Dotheap 0.1.1

Choose a tag to compare

@github-actions github-actions released this 22 Oct 15:18
ff5ecf8

Fixes stale details in the macOS Viewer when changing selections. Native-memory chunks and task state fields now follow the selected item, including when query results are cached or still loading.

Chunk headings use the correct singular and show when the list is limited to the largest 500 allocations.

Update the CLI and Viewer through Homebrew:

brew upgrade --cask dotheap

Linux and Windows CLI packages are also included. See the README for installation.

Dotheap 0.1.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 03:28

First public release of Dotheap, a CLI and macOS Viewer for managed and native memory analysis in .NET process dumps.

  • Analyze stock CoreCLR workstation/server GC and Satori heaps, including live, dead and retained memory, roots, fragmentation and finalization.
  • Follow managed and native references, inspect glibc allocations, reconstruct async call chains, and investigate findings such as heap corruption and ArrayPool misuse.
  • Capture Linux processes with brief suspensions and compressed output. Runtime capture requires --offline; Dotheap never switches to it automatically.
  • Read compressed dumps directly. CLI commands provide JSON output and suggested next commands.

On macOS 15 or later, install Xcode 16 or later, then run:

brew install --cask neon-sunset/tap/dotheap

Homebrew builds this release from source, installs the CLI on PATH, and puts the Viewer in /Applications. brew upgrade --cask dotheap updates both.

Linux archives contain static CLI binaries for x86_64 and aarch64. Windows has an x64 CLI with no additional runtime dependencies. The Windows CLI reads Linux and macOS dumps; Windows minidumps are not supported. Downloadable macOS binaries are not notarized; use Homebrew for a local build.

.NET and ASP.NET Core 10.0.1–10.0.13 are supported. See the README for capture permissions, supported dump formats and analysis limitations.

Licensed under AGPLv3. Source, license notices and SHA256SUMS are included with this release.