文件名称:asan_alignment_example:说明ASan的手动中毒调整要求
文件大小:5KB
文件格式:ZIP
更新时间:2024-05-13 02:59:28
C++
手动ASan中毒和对中 ASan中毒具有对齐要求:用户必须添加填充,以使填充在影子存储器中的字节边界处结束。 由于ASan影子存储器中的每个位都编码实存储器中一个字节的状态,因此这意味着每个分配的大小+填充必须在8字节边界上对齐。 如果不满足此要求,则可能导致错误的错误报告,包括遗漏的报告和错误的阳性报告。 有关一些背景知识,请参见随附的示例。 一个是一个小程序,用来显示手动影子内存中毒可能导致的问题。 第二个示例是使用std::allocator接口进行手动平衡的示例实现。 要构建并运行分配器示例: nmake allocator && allocator.exe 要建立“不良中毒”示例: nmake unpoison && unpoison.exe
【文件预览】:
asan_alignment_example-main
----bad_unpoison()
--------shadow_memory_printing.h(816B)
--------unpoison.cpp(2KB)
----allocator()
--------arena_allocator.h(3KB)
--------main.cpp(532B)
----makefile(409B)
----.gitignore(47B)
----README.md(880B)