Lines Matching defs:addr
71 static bool GetShadowKind(uptr addr, ShadowKind *shadow_kind) {
72 CHECK(!AddrIsInMem(addr));
73 if (AddrIsInShadowGap(addr)) {
75 } else if (AddrIsInHighShadow(addr)) {
77 } else if (AddrIsInLowShadow(addr)) {
85 bool DescribeAddressIfShadow(uptr addr) {
87 if (!GetShadowAddressInformation(addr, &descr)) return false;
92 bool GetShadowAddressInformation(uptr addr, ShadowAddressDescription *descr) {
93 if (AddrIsInMem(addr)) return false;
95 if (!GetShadowKind(addr, &shadow_kind)) return false;
96 if (shadow_kind != kShadowKindGap) descr->shadow_byte = *(u8 *)addr;
97 descr->addr = addr;
104 AsanChunkView chunk, uptr addr,
106 descr->bad_addr = addr;
107 if (chunk.AddrIsAtLeft(addr, access_size, &descr->offset)) {
109 } else if (chunk.AddrIsAtRight(addr, access_size, &descr->offset)) {
115 } else if (chunk.AddrIsInside(addr, access_size, &descr->offset)) {
126 static void PrintHeapChunkAccess(uptr addr, const ChunkAccess &descr) {
155 bool GetHeapAddressInformation(uptr addr, uptr access_size,
157 AsanChunkView chunk = FindHeapChunkByAddress(addr);
161 descr->addr = addr;
162 GetAccessToHeapChunkInformation(&descr->chunk_access, chunk, addr,
180 bool DescribeAddressIfHeap(uptr addr, uptr access_size) {
182 if (!GetHeapAddressInformation(addr, access_size, &descr)) {
193 bool GetStackAddressInformation(uptr addr, uptr access_size,
195 AsanThread *t = FindThreadByStackAddress(addr);
198 descr->addr = addr;
202 if (!t->GetStackFrameAccessByAddr(addr, &access)) {
223 static void PrintAccessAndVarIntersection(const StackVarDescr &var, uptr addr,
227 uptr addr_end = addr + access_size;
231 if (addr >= var.beg) {
234 else if (addr < var_end)
237 next_var_beg - addr_end >= addr - var_end)
242 else if (addr >= prev_var_end && addr - prev_var_end >= var.beg - addr_end)
261 d.Location(), addr, pos_descr, d.Default());
268 bool DescribeAddressIfStack(uptr addr, uptr access_size) {
270 if (!GetStackAddressInformation(addr, access_size, &descr)) return false;
276 static void DescribeAddressRelativeToGlobal(uptr addr, uptr access_size,
281 if (addr < g.beg) {
282 str.AppendF("%p is located %zd bytes before", (void *)addr, g.beg - addr);
283 } else if (addr + access_size > g.beg + g.size) {
284 if (addr < g.beg + g.size) addr = g.beg + g.size;
285 str.AppendF("%p is located %zd bytes after", (void *)addr,
286 addr - (g.beg + g.size));
289 str.AppendF("%p is located %zd bytes inside of", (void *)addr,
290 addr - g.beg);
301 bool GetGlobalAddressInformation(uptr addr, uptr access_size,
303 descr->addr = addr;
304 int globals_num = GetGlobalsForAddress(addr, descr->globals, descr->reg_sites,
311 bool DescribeAddressIfGlobal(uptr addr, uptr access_size,
314 if (!GetGlobalAddressInformation(addr, access_size, &descr)) return false;
321 Printf("Address %p is located in the %s area.\n", (void *)addr,
327 DescribeAddressRelativeToGlobal(addr, access_size, globals[i]);
346 a.beg <= addr &&
347 b.beg <= other.addr &&
348 (addr + access_size) < (a.beg + a.size) &&
349 (other.addr + other.access_size) < (b.beg + b.size))
360 Printf("Address %p is located in stack of thread %s", (void *)addr,
387 // 'addr' is a stack address, so return true even if we can't parse frame
413 PrintHeapChunkAccess(addr, chunk_access);
439 AddressDescription::AddressDescription(uptr addr, uptr access_size,
441 if (GetShadowAddressInformation(addr, &data.shadow)) {
445 if (GetHeapAddressInformation(addr, access_size, &data.heap)) {
453 isStackMemory = GetStackAddressInformation(addr, access_size, &data.stack);
455 isStackMemory = GetStackAddressInformation(addr, access_size, &data.stack);
462 if (GetGlobalAddressInformation(addr, access_size, &data.global)) {
467 data.wild.addr = addr;
473 (void *)addr, (void *)access_size);
476 void PrintAddressDescription(uptr addr, uptr access_size,
479 if (GetShadowAddressInformation(addr, &shadow_descr)) {
485 if (GetGlobalAddressInformation(addr, access_size, &global_descr)) {
491 if (GetStackAddressInformation(addr, access_size, &stack_descr)) {
497 if (GetHeapAddressInformation(addr, access_size, &heap_descr)) {