0.5.0
Major changes:
- Shadow stack based unwinding is now supported on stable Rust and turned on by default.
- Systems where
perf_event_openis unavailable (e.g. unpatched MIPS64 systems, docker containers, etc.) are now supported. - The mechanism for exception handling when using shadow stack based unwinding was completely rewritten using proper landing pads.
- Programs which call
longjmp/setjmpare now partially supported when using shadow stack based unwinding. - Shared objects dynamically loaded through
dlopenare now properly handled. - Rust symbol demangling is now supported.
- Fixed an issue where calling
backtraceon certain architectures while using shadow stack based unwinding would crash the program. - The profiler can now be compiled with the
jemallocfeature to use jemalloc instead of the system allocator. - The profiler can now be started and stopped programmatically through
memory_profiler_startandmemory_profiler_stopfunctions exported bylibmemory_profiler.so. Those are equivalent to controlling the profiler through signals.