Я недавно имел дело с внутренними компонентами Address Sanitizer (ASAN) , и я узнал об инструментарии кода от ASAN.
При использовании инструментов 1,2, Доступ к 4-байтным инструментам:
ShadowAddr = (Addr >> 3) + Offset;
k = *ShadowAddr;
if (k != 0 && ((Addr & 7) + AccessSize > k))
ReportAndCrash(Addr);
Я не мог понять, что делает AccessSize в line 3
и почему он там используется.