Learn Relocation by Debugging a HWASAN Linker Error
笔者在 Linux/AArch64 环境下使用 HWASAN 时,遇到一 “relocation R_AARCH64_ADR_PREL_PG_HI21 out of range” 链接错误,在分析解决该链接错误过程中对 linker relocation 以及 HWASAN 都有了更深的理解,因此将分析解决该链接错误的过程梳理总结形成此文。
笔者在 Linux/AArch64 环境下使用 HWASAN 时,遇到一 “relocation R_AARCH64_ADR_PREL_PG_HI21 out of range” 链接错误,在分析解决该链接错误过程中对 linker relocation 以及 HWASAN 都有了更深的理解,因此将分析解决该链接错误的过程梳理总结形成此文。
本文深入分析了 HWASAN (HardWare-assisted AddressSanitizer) 检测内存错误的原理。
本文深入分析了 AddressSanitizer Allocator 的实现。
本文首先介绍了 C++ 中的 strict aliasing rule,然后深入分析编译器是如何利用 strict aliasing rule 对程序进行分析优化的,之后介绍了检测 strict aliasing violation 的动态分析工具 TypeSanitizer,最后介绍如何在编程时避免写出 strict aliasing violation 的代码。
本文深入剖析 ThreadSanitizer(V2) 检测 Data Race 背后的算法原理。
本文以 ASan 为例分析 sanitizer runtime 是如何获取和保存 stack trace 的。
本文分析了 sanitizer 是如何做到替换 malloc, free, memcpy 这些库函数的实现的。即 sanitizer 中的 interceptor 机制。
本文分析了 sanitizer runtime 是如何做到在程序启动之前进行初始化的。
本文深入剖析 GWP-ASan 这一概率性内存错误检测工具的原理。
本文描述了如何实现一个简单的 sanitizer 。