• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/compiler-rt/lib/asan/

Lines Matching refs:descr

87   ShadowAddressDescription descr;
88 if (!GetShadowAddressInformation(addr, &descr)) return false;
89 descr.Print();
93 bool GetShadowAddressInformation(uptr addr, ShadowAddressDescription *descr) {
97 if (shadow_kind != kShadowKindGap) descr->shadow_byte = *(u8 *)addr;
98 descr->addr = addr;
99 descr->kind = shadow_kind;
104 static void GetAccessToHeapChunkInformation(ChunkAccess *descr,
107 descr->bad_addr = addr;
108 if (chunk.AddrIsAtLeft(addr, access_size, &descr->offset)) {
109 descr->access_type = kAccessTypeLeft;
110 } else if (chunk.AddrIsAtRight(addr, access_size, &descr->offset)) {
111 descr->access_type = kAccessTypeRight;
112 if (descr->offset < 0) {
113 descr->bad_addr -= descr->offset;
114 descr->offset = 0;
116 } else if (chunk.AddrIsInside(addr, access_size, &descr->offset)) {
117 descr->access_type = kAccessTypeInside;
119 descr->access_type = kAccessTypeUnknown;
121 descr->chunk_begin = chunk.Beg();
122 descr->chunk_size = chunk.UsedSize();
123 descr->user_requested_alignment = chunk.UserRequestedAlignment();
124 descr->alloc_type = chunk.GetAllocType();
127 static void PrintHeapChunkAccess(uptr addr, const ChunkAccess &descr) {
131 switch (descr.access_type) {
134 (void *)descr.bad_addr, descr.offset);
138 (void *)descr.bad_addr, descr.offset);
141 str.append("%p is located %zd bytes inside of", (void *)descr.bad_addr,
142 descr.offset);
147 (void *)descr.bad_addr);
149 str.append(" %zu-byte region [%p,%p)\n", descr.chunk_size,
150 (void *)descr.chunk_begin,
151 (void *)(descr.chunk_begin + descr.chunk_size));
157 HeapAddressDescription *descr) {
162 descr->addr = addr;
163 GetAccessToHeapChunkInformation(&descr->chunk_access, chunk, addr,
166 descr->alloc_tid = chunk.AllocTid();
167 descr->alloc_stack_id = chunk.GetAllocStackId();
168 descr->free_tid = chunk.FreeTid();
169 if (descr->free_tid != kInvalidTid)
170 descr->free_stack_id = chunk.GetFreeStackId();
182 HeapAddressDescription descr;
183 if (!GetHeapAddressInformation(addr, access_size, &descr)) {
189 descr.Print();
195 StackAddressDescription *descr) {
199 descr->addr = addr;
200 descr->tid = t->tid();
204 descr->frame_descr = nullptr;
208 descr->offset = access.offset;
209 descr->access_size = access_size;
210 descr->frame_pc = access.frame_pc;
211 descr->frame_descr = access.frame_descr;
217 descr->frame_pc = *reinterpret_cast<uptr *>(descr->frame_pc);
219 descr->frame_pc += 16;
270 StackAddressDescription descr;
271 if (!GetStackAddressInformation(addr, access_size, &descr)) return false;
272 descr.Print();
303 GlobalAddressDescription *descr) {
304 descr->addr = addr;
305 int globals_num = GetGlobalsForAddress(addr, descr->globals, descr->reg_sites,
306 ARRAY_SIZE(descr->globals));
307 descr->size = globals_num;
308 descr->access_size = access_size;
314 GlobalAddressDescription descr;
315 if (!GetGlobalAddressInformation(addr, access_size, &descr)) return false;
317 descr.Print(bug_type);