tralloc

Crates.iotralloc
lib.rstralloc
version0.1.1
sourcesrc
created_at2019-07-25 13:19:46.461895
updated_at2019-07-27 21:51:48.937671
descriptiontrace allocations and deallocations
homepage
repositoryhttps://github.com/19h/tralloc
max_upload_size
id151556
size10,671
Kenan Sulayman (19h)

documentation

README

tralloc: tracing allocator for Rust

This project allows you to log all the allocations to stderr, stdout or a file.

To use it, register the global allocator and activate it:

#![feature(global_allocator)]

extern crate tralloc;

#[global_allocator]
static GLOBAL: tralloc::Allocator = tralloc::Allocator{};

fn main() {
  tralloc::Allocator::write_to_stderr();
  tralloc::Allocator::activate();

  let s = String::from("Hello world!");

  let mut v = Vec::new();
  v.push(1);

The following will be printed:

00029801ACDA259B A 00007FB780500000 000000000000000C
00029801ACDB7EFB A 00007FB780500010 0000000000000010
00029801ACDBAAC1 D 00007FB780500010 0000000000000010
00029801ACDBCD09 D 00007FB780500000 000000000000000C

Columns:

  • time (monotonic, so not linked to any timezone)
  • A for allocation, D for deallocation
  • memory address
  • size

You can use the activate and deactivate methods to start and stop collection at any time.

Note

This repository is based on tracing_allocator. It was forked because of breaking changes in Rust internals and lack of communication from the original author.

Commit count: 13

cargo fmt