Home | History | Annotate | Download | only in memcheck

Lines Matching refs:ai

191          AddrInfo ai;
196 AddrInfo ai;
209 AddrInfo ai;
218 AddrInfo ai;
227 AddrInfo ai;
233 AddrInfo ai;
252 AddrInfo ai;
298 static void mc_pp_AddrInfo ( Addr a, AddrInfo* ai, Bool maybe_gcc )
303 switch (ai->tag) {
318 xpre, (ULong)a, ai->Addr.Stack.tid, xpost );
322 SizeT block_szB = ai->Addr.Block.block_szB;
323 PtrdiffT rwoffset = ai->Addr.Block.rwoffset;
340 a, delta, relative, ai->Addr.Block.block_desc,
342 ai->Addr.Block.block_kind==Block_Mallocd ? "alloc'd"
343 : ai->Addr.Block.block_kind==Block_Freed ? "free'd"
347 VG_(pp_ExeContext)(ai->Addr.Block.lastchange);
356 (ULong)ai->Addr.DataSym.offset,
357 ai->Addr.DataSym.name,
365 if (ai->Addr.Variable.descr1)
368 (HChar*)VG_(indexXA)(ai->Addr.Variable.descr1, 0) );
369 if (ai->Addr.Variable.descr2)
372 (HChar*)VG_(indexXA)(ai->Addr.Variable.descr2, 0) );
379 VG_(pp_SectKind)(ai->Addr.SectKind.kind),
380 ai->Addr.SectKind.objname,
536 &extra->Err.MemParam.ai, False);
548 &extra->Err.MemParam.ai, False);
566 mc_pp_AddrInfo(VG_(get_error_address)(err), &extra->Err.User.ai,
576 mc_pp_AddrInfo(VG_(get_error_address)(err), &extra->Err.User.ai,
590 &extra->Err.Free.ai, False );
595 &extra->Err.Free.ai, False );
605 &extra->Err.FreeMismatch.ai, False);
610 &extra->Err.FreeMismatch.ai, False);
623 &extra->Err.Addr.ai,
632 &extra->Err.Addr.ai,
643 mc_pp_AddrInfo( VG_(get_error_address)(err), &extra->Err.Jump.ai,
648 mc_pp_AddrInfo( VG_(get_error_address)(err), &extra->Err.Jump.ai,
692 &extra->Err.IllegalMempool.ai, False );
697 &extra->Err.IllegalMempool.ai, False );
854 extra.Err.Addr.ai.tag = Addr_Undescribed;
912 extra.Err.MemParam.ai.tag = Addr_Undescribed;
922 extra.Err.Jump.ai.tag = Addr_Undescribed;
930 extra.Err.Free.ai.tag = Addr_Undescribed;
937 AddrInfo* ai = &extra.Err.FreeMismatch.ai;
939 ai->tag = Addr_Block;
940 ai->Addr.Block.block_kind = Block_Mallocd; // Nb: Not 'Block_Freed'
941 ai->Addr.Block.block_desc = "block";
942 ai->Addr.Block.block_szB = mc->szB;
943 ai->Addr.Block.rwoffset = 0;
944 ai->Addr.Block.lastchange = mc->where;
953 extra.Err.IllegalMempool.ai.tag = Addr_Undescribed;
996 extra.Err.User.ai.tag = Addr_Undescribed;
1086 static Bool client_block_maybe_describe( Addr a, AddrInfo* ai );
1087 static Bool mempool_block_maybe_describe( Addr a, AddrInfo* ai );
1091 putting the result in ai. */
1092 static void describe_addr ( Addr a, /*OUT*/AddrInfo* ai )
1099 tl_assert(Addr_Undescribed == ai->tag);
1102 if (client_block_maybe_describe( a, ai )) {
1106 if (mempool_block_maybe_describe( a, ai )) {
1113 ai->tag = Addr_Block;
1114 ai->Addr.Block.block_kind = Block_Freed;
1115 ai->Addr.Block.block_desc = "block";
1116 ai->Addr.Block.block_szB = mc->szB;
1117 ai->Addr.Block.rwoffset = (Word)a - (Word)mc->data;
1118 ai->Addr.Block.lastchange = mc->where;
1127 ai->tag = Addr_Block;
1128 ai->Addr.Block.block_kind = Block_Mallocd;
1129 ai->Addr.Block.block_desc = "block";
1130 ai->Addr.Block.block_szB = mc->szB;
1131 ai->Addr.Block.rwoffset = (Word)a - (Word)mc->data;
1132 ai->Addr.Block.lastchange = mc->where;
1137 ai->Addr.Variable.descr1
1140 ai->Addr.Variable.descr2
1144 (void) VG_(get_data_description)( ai->Addr.Variable.descr1,
1145 ai->Addr.Variable.descr2, a );
1152 if (0 == VG_(strlen)( VG_(indexXA)( ai->Addr.Variable.descr1, 0 ))) {
1153 VG_(deleteXA)( ai->Addr.Variable.descr1 );
1154 ai->Addr.Variable.descr1 = NULL;
1156 if (0 == VG_(strlen)( VG_(indexXA)( ai->Addr.Variable.descr2, 0 ))) {
1157 VG_(deleteXA)( ai->Addr.Variable.descr2 );
1158 ai->Addr.Variable.descr2 = NULL;
1162 if (ai->Addr.Variable.descr1 == NULL)
1163 tl_assert(ai->Addr.Variable.descr2 == NULL);
1165 if (ai->Addr.Variable.descr1 != NULL) {
1166 ai->tag = Addr_Variable;
1171 VG_(memset)( &ai->Addr.DataSym.name,
1172 0, sizeof(ai->Addr.DataSym.name));
1174 a, &ai->Addr.DataSym.name[0],
1175 sizeof(ai->Addr.DataSym.name)-1,
1176 &ai->Addr.DataSym.offset )) {
1177 ai->tag = Addr_DataSym;
1178 tl_assert( ai->Addr.DataSym.name
1179 [ sizeof(ai->Addr.DataSym.name)-1 ] == 0);
1186 ai->tag = Addr_Stack;
1187 ai->Addr.Stack.tid = tid;
1192 tl_assert( sizeof(ai->Addr.SectKind.objname) > 4 );
1193 VG_(memset)( &ai->Addr.SectKind.objname,
1194 0, sizeof(ai->Addr.SectKind.objname));
1195 VG_(strcpy)( ai->Addr.SectKind.objname, "???" );
1196 sect = VG_(DebugInfo_sect_kind)( &ai->Addr.SectKind.objname[0],
1197 sizeof(ai->Addr.SectKind.objname)-1, a);
1199 ai->tag = Addr_SectKind;
1200 ai->Addr.SectKind.kind = sect;
1201 tl_assert( ai->Addr.SectKind.objname
1202 [ sizeof(ai->Addr.SectKind.objname)-1 ] == 0);
1206 ai->tag = Addr_Unknown;
1259 &extra->Err.Addr.ai );
1263 &extra->Err.MemParam.ai );
1269 &extra->Err.Jump.ai );
1273 &extra->Err.User.ai );
1279 &extra->Err.Free.ai );
1283 &extra->Err.IllegalMempool.ai );
1292 extra->Err.FreeMismatch.ai.Addr.Block.block_kind);
1294 &extra->Err.FreeMismatch.ai );
1304 /*OUT*/AddrInfo* ai )
1320 ai->tag = Addr_Block;
1321 ai->Addr.Block.block_kind = Block_UserG;
1322 ai->Addr.Block.block_desc = cgbs[i].desc;
1323 ai->Addr.Block.block_szB = cgbs[i].size;
1324 ai->Addr.Block.rwoffset = (Word)(a) - (Word)(cgbs[i].start);
1325 ai->Addr.Block.lastchange = cgbs[i].where;
1334 /*OUT*/AddrInfo* ai )
1346 ai->tag = Addr_Block;
1347 ai->Addr.Block.block_kind = Block_MempoolChunk;
1348 ai->Addr.Block.block_desc = "block";
1349 ai->Addr.Block.block_szB = mc->szB;
1350 ai->Addr.Block.rwoffset = (Word)a - (Word)mc->data;
1351 ai->Addr.Block.lastchange = mc->where;