All notable changes to this project are documented here. The format follows Keep a Changelog, and the project aims to follow Semantic Versioning.
First stable release: in-process memory dumps in reli's RDUMP format, without
ptrace.
rdump_dump(string $path, bool $full = false): bool: write a dump of the current process's memory.$fullalso embeds read-only file-backed segments for host-independent analysis.memory_limitauto-dump viazend_error_cb(opt-inrdump.oom_dump), catching even the OOMs aregister_shutdown_functioncannot.- Runaway guards:
rdump.oom_dump_max(per-worker count),rdump.oom_dump_min_interval(spacing),rdump.oom_dump_max_total(byte budget across*.rdumpin the directory). - Path templates
%p(PID),%i(thread id),%t(time),%%. rdump.oom_dump_markerwrites a<path>.donecompletion marker for directory watchers.rdump_set_oom_dump(?string $path, bool $full = false): boolruntime override.
- Runaway guards:
rdump.safe_readreads regions via/proc/self/memso a concurrent unmap yields zero-filled bytes instead of a crash. Default on under ZTS, off under NTS.
- Dumps are created
0600withO_EXCL/O_NOFOLLOW/O_CLOEXEC; an existing regular file is replaced by a fresh inode, and non-regular targets are refused.
- Linux, 64-bit little-endian, PHP 7.0 – 8.5 (NTS and ZTS).