2 个版本

0.1.1 2024 年 2 月 7 日
0.1.0 2024 年 2 月 7 日

298测试

26 每月下载量
用于 2 crates

MIT/Apache

8KB
85

drop_tracer

简单的内存泄漏检测器。

这个 crate 的作者英语不太好。
如果文档难以阅读,请见谅。

这是什么?

这个 crate 执行简单的内存泄漏检测。这旨在检查小型 crates 中的局部内存泄漏。它使用简单,只需生成用于追踪的项目,将它们嵌入目标中进行管理,然后在稍后检查它们是否已释放。

(#[global_allocator] 属性不是必需的).

示例

使用 try_drop 的示例(请参阅手册以获取其他选项)。

let result = DropTracer::try_drop(|t| {
    let x = Chain::new(t.new_item());
    let y = Chain::new(t.new_item());
    x.borrow_mut().link = Some(y.clone());
    y.borrow_mut().link = Some(x.clone());
});

assert_eq!(result.unwrap_err().count(), 2);

struct Chain {
    link: Option<Rc<RefCell<Self>>>,
    _d: DropItem,
}

impl Chain {
    pub fn new(d: DropItem) -> Rc<RefCell<Self>> {
        let result = Self { link: None, _d: d };
        Rc::new(RefCell::new(result))
    }
}

新功能。

v0.1.1

  • DropItem 实现 Debug 特性。

无运行时依赖