1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
use std::alloc::{GlobalAlloc, System, Layout}; struct MyAllocator; unsafe impl GlobalAlloc for MyAllocator { unsafe fn alloc(&self, layout: Layout) -> *mut u8 { eprintln!("GlobalAlloc::alloc"); System.alloc(layout) } unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) { eprintln!("GlobalAlloc::dealloc"); System.dealloc(ptr, layout) } } #[global_allocator] static GLOBAL: MyAllocator = MyAllocator;