2个版本
0.0.1 | 2018年11月11日 |
---|---|
0.0.0 | 2018年11月10日 |
#21 in #able
17KB
335 行
Luo的内存沙盒
一个以调试为导向的内存沙盒。
Luo的内存沙盒提供了一种创建完全自定义的线性内存缓冲区的方法。通过提供自定义内存分配器,它可以在编写数据结构时用于查找内存泄漏和错误。
lib.rs
:
有用的沙盒,用于测试内存、网络(待办)和文件系统(待办),这对于开发数据结构很有用。
内存沙盒
内存沙盒部分是为调试管理内存所有权的内存结构而设计的。为此,它提供了各种可定制的分配器。本部分有4个结构。
LuosAlloc
是一个通用分配器,它提供了函数 inner
来查看已分配的内容,并且通过在创建时使用 new_filled_with
,我们可以轻松地区分正常或泄漏的字节。它通过实现 Alloc
特性来适配Rust分配API。
LuosMustReplaceAlloc
与 LuosAlloc
类似,也适合Rust分配API,但每次它 realloc
时,都确保新内存段不是从旧内存段扩展出来的,而是始终尝试为新内存段分配。这在编写数据结构时检测逻辑错误很有用。
LuosGlobalAlloc
也能够分配,但它实现了 GlobalAlloc
特性。通过将其用作全局分配器,我们可以用完整的Rust最小运行时调试我们的程序。
LuosMemory
是一个 16-KiB 线性缓冲区,用于此crate中提供的所有分配器。当我们从此crate构建分配器时,我们必须使用 LuosMemory::new()
创建一个 LuosMemory
缓冲区,并且我们可以使用 let mut a = LuosAlloc::new(LuosMemory::new())
创建分配器。