0.5.0
Major changes:
- Shadow stack based unwinding is now supported on stable Rust and turned on by default.
- Systems where
perf_event_open
is 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
/setjmp
are now partially supported when using shadow stack based unwinding. - Shared objects dynamically loaded through
dlopen
are now properly handled. - Rust symbol demangling is now supported.
- Fixed an issue where calling
backtrace
on certain architectures while using shadow stack based unwinding would crash the program. - The profiler can now be compiled with the
jemalloc
feature to use jemalloc instead of the system allocator. - The profiler can now be started and stopped programmatically through
memory_profiler_start
andmemory_profiler_stop
functions exported bylibmemory_profiler.so
. Those are equivalent to controlling the profiler through signals.