Skip to content

0.5.0

Compare
Choose a tag to compare
@koute koute released this 07 Oct 13:58

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 and memory_profiler_stop functions exported by libmemory_profiler.so. Those are equivalent to controlling the profiler through signals.