Lines Matching defs:addr

73 static bool GetShadowKind(uptr addr, ShadowKind *shadow_kind) {
74 CHECK(!AddrIsInMem(addr));
75 if (AddrIsInShadowGap(addr)) {
77 } else if (AddrIsInHighShadow(addr)) {
79 } else if (AddrIsInLowShadow(addr)) {
87 bool DescribeAddressIfShadow(uptr addr) {
89 if (!GetShadowAddressInformation(addr, &descr)) return false;
94 bool GetShadowAddressInformation(uptr addr, ShadowAddressDescription *descr) {
95 if (AddrIsInMem(addr)) return false;
97 if (!GetShadowKind(addr, &shadow_kind)) return false;
98 if (shadow_kind != kShadowKindGap) descr->shadow_byte = *(u8 *)addr;
99 descr->addr = addr;
106 AsanChunkView chunk, uptr addr,
108 descr->bad_addr = addr;
109 if (chunk.AddrIsAtLeft(addr, access_size, &descr->offset)) {
111 } else if (chunk.AddrIsAtRight(addr, access_size, &descr->offset)) {
117 } else if (chunk.AddrIsInside(addr, access_size, &descr->offset)) {
128 static void PrintHeapChunkAccess(uptr addr, const ChunkAccess &descr) {
157 bool GetHeapAddressInformation(uptr addr, uptr access_size,
159 AsanChunkView chunk = FindHeapChunkByAddress(addr);
163 descr->addr = addr;
164 GetAccessToHeapChunkInformation(&descr->chunk_access, chunk, addr,
182 bool DescribeAddressIfHeap(uptr addr, uptr access_size) {
184 if (!GetHeapAddressInformation(addr, access_size, &descr)) {
195 bool GetStackAddressInformation(uptr addr, uptr access_size,
197 AsanThread *t = FindThreadByStackAddress(addr);
200 descr->addr = addr;
204 if (!t->GetStackFrameAccessByAddr(addr, &access)) {
225 static void PrintAccessAndVarIntersection(const StackVarDescr &var, uptr addr,
229 uptr addr_end = addr + access_size;
233 if (addr >= var.beg) {
236 else if (addr < var_end)
239 next_var_beg - addr_end >= addr - var_end)
244 else if (addr >= prev_var_end && addr - prev_var_end >= var.beg - addr_end)
263 d.Location(), addr, pos_descr, d.Default());
270 bool DescribeAddressIfStack(uptr addr, uptr access_size) {
272 if (!GetStackAddressInformation(addr, access_size, &descr)) return false;
278 static void DescribeAddressRelativeToGlobal(uptr addr, uptr access_size,
283 if (addr < g.beg) {
284 str.AppendF("%p is located %zd bytes before", (void *)addr, g.beg - addr);
285 } else if (addr + access_size > g.beg + g.size) {
286 if (addr < g.beg + g.size) addr = g.beg + g.size;
287 str.AppendF("%p is located %zd bytes after", (void *)addr,
288 addr - (g.beg + g.size));
291 str.AppendF("%p is located %zd bytes inside of", (void *)addr,
292 addr - g.beg);
303 bool GetGlobalAddressInformation(uptr addr, uptr access_size,
305 descr->addr = addr;
306 int globals_num = GetGlobalsForAddress(addr, descr->globals, descr->reg_sites,
313 bool DescribeAddressIfGlobal(uptr addr, uptr access_size,
316 if (!GetGlobalAddressInformation(addr, access_size, &descr)) return false;
323 Printf("Address %p is located in the %s area.\n", (void *)addr,
329 DescribeAddressRelativeToGlobal(addr, access_size, globals[i]);
348 a.beg <= addr &&
349 b.beg <= other.addr &&
350 (addr + access_size) < (a.beg + a.size) &&
351 (other.addr + other.access_size) < (b.beg + b.size))
362 Printf("Address %p is located in stack of thread %s", (void *)addr,
389 // 'addr' is a stack address, so return true even if we can't parse frame
415 PrintHeapChunkAccess(addr, chunk_access);
441 AddressDescription::AddressDescription(uptr addr, uptr access_size,
443 if (GetShadowAddressInformation(addr, &data.shadow)) {
447 if (GetHeapAddressInformation(addr, access_size, &data.heap)) {
455 isStackMemory = GetStackAddressInformation(addr, access_size, &data.stack);
457 isStackMemory = GetStackAddressInformation(addr, access_size, &data.stack);
464 if (GetGlobalAddressInformation(addr, access_size, &data.global)) {
469 data.wild.addr = addr;
475 (void *)addr, (void *)access_size);
478 void PrintAddressDescription(uptr addr, uptr access_size,
481 if (GetShadowAddressInformation(addr, &shadow_descr)) {
487 if (GetGlobalAddressInformation(addr, access_size, &global_descr)) {
493 if (GetStackAddressInformation(addr, access_size, &stack_descr)) {
499 if (GetHeapAddressInformation(addr, access_size, &heap_descr)) {