Lines Matching refs:ai

44 void VG_(describe_addr) ( Addr a, /*OUT*/AddrInfo* ai )
51 ai->Addr.Variable.descr1
54 ai->Addr.Variable.descr2
58 (void) VG_(get_data_description)( ai->Addr.Variable.descr1,
59 ai->Addr.Variable.descr2, a );
66 if (0 == VG_(strlen)( VG_(indexXA)( ai->Addr.Variable.descr1, 0 ))) {
67 VG_(deleteXA)( ai->Addr.Variable.descr1 );
68 ai->Addr.Variable.descr1 = NULL;
70 if (0 == VG_(strlen)( VG_(indexXA)( ai->Addr.Variable.descr2, 0 ))) {
71 VG_(deleteXA)( ai->Addr.Variable.descr2 );
72 ai->Addr.Variable.descr2 = NULL;
76 if (ai->Addr.Variable.descr1 == NULL)
77 vg_assert(ai->Addr.Variable.descr2 == NULL);
79 if (ai->Addr.Variable.descr1 != NULL) {
80 ai->tag = Addr_Variable;
85 VG_(memset)( &ai->Addr.DataSym.name,
86 0, sizeof(ai->Addr.DataSym.name));
88 a, &ai->Addr.DataSym.name[0],
89 sizeof(ai->Addr.DataSym.name)-1,
90 &ai->Addr.DataSym.offset )) {
91 ai->tag = Addr_DataSym;
92 vg_assert( ai->Addr.DataSym.name
93 [ sizeof(ai->Addr.DataSym.name)-1 ] == 0);
100 ai->tag = Addr_Stack;
101 ai->Addr.Stack.tid = tid;
111 ai->tag = Addr_Block;
113 ai->Addr.Block.block_kind
116 ai->Addr.Block.block_kind
119 ai->Addr.Block.block_desc = aai.name;
120 ai->Addr.Block.block_szB = aai.block_szB;
121 ai->Addr.Block.rwoffset = aai.rwoffset;
122 ai->Addr.Block.allocated_at = VG_(null_ExeContext)();
123 ai->Addr.Block.freed_at = VG_(null_ExeContext)();
129 vg_assert( sizeof(ai->Addr.SectKind.objname) > 4 );
130 VG_(memset)( &ai->Addr.SectKind.objname,
131 0, sizeof(ai->Addr.SectKind.objname));
132 VG_(strcpy)( ai->Addr.SectKind.objname, "???" );
133 sect = VG_(DebugInfo_sect_kind)( &ai->Addr.SectKind.objname[0],
134 sizeof(ai->Addr.SectKind.objname)-1, a);
136 ai->tag = Addr_SectKind;
137 ai->Addr.SectKind.kind = sect;
138 vg_assert( ai->Addr.SectKind.objname
139 [ sizeof(ai->Addr.SectKind.objname)-1 ] == 0);
143 ai->tag = Addr_Unknown;
147 void VG_(clear_addrinfo) ( AddrInfo* ai)
149 switch (ai->tag) {
163 if (ai->Addr.Variable.descr1 != NULL) {
164 VG_(deleteXA)( ai->Addr.Variable.descr1 );
165 ai->Addr.Variable.descr1 = NULL;
167 if (ai->Addr.Variable.descr2 != NULL) {
168 VG_(deleteXA)( ai->Addr.Variable.descr2 );
169 ai->Addr.Variable.descr2 = NULL;
180 ai->tag = Addr_Undescribed;
200 static void pp_addrinfo_WRK ( Addr a, AddrInfo* ai, Bool mc, Bool maybe_gcc )
207 switch (ai->tag) {
225 xpre, (ULong)a, ai->Addr.Stack.tid, xpost );
229 SizeT block_szB = ai->Addr.Block.block_szB;
230 PtrdiffT rwoffset = ai->Addr.Block.rwoffset;
244 if (is_arena_BlockKind (ai->Addr.Block.block_kind))
251 ai->Addr.Block.block_kind==Block_ClientArenaMallocd
252 || ai->Addr.Block.block_kind==Block_ValgrindArenaMallocd
255 ai->Addr.Block.block_desc, // arena name
264 ai->Addr.Block.block_desc,
266 ai->Addr.Block.block_kind==Block_Mallocd ? "alloc'd"
267 : ai->Addr.Block.block_kind==Block_Freed ? "free'd"
271 if (ai->Addr.Block.block_kind==Block_Mallocd) {
272 VG_(pp_ExeContext)(ai->Addr.Block.allocated_at);
273 tl_assert (ai->Addr.Block.freed_at == VG_(null_ExeContext)());
275 else if (ai->Addr.Block.block_kind==Block_Freed) {
276 VG_(pp_ExeContext)(ai->Addr.Block.freed_at);
277 if (ai->Addr.Block.allocated_at != VG_(null_ExeContext)()) {
283 VG_(pp_ExeContext)(ai->Addr.Block.allocated_at);
286 else if (ai->Addr.Block.block_kind==Block_MempoolChunk
287 || ai->Addr.Block.block_kind==Block_UserG) {
289 VG_(pp_ExeContext)(ai->Addr.Block.allocated_at);
290 tl_assert (ai->Addr.Block.freed_at == VG_(null_ExeContext)());
296 tl_assert (ai->Addr.Block.allocated_at == VG_(null_ExeContext)());
297 tl_assert (ai->Addr.Block.freed_at == VG_(null_ExeContext)());
308 (ULong)ai->Addr.DataSym.offset,
309 ai->Addr.DataSym.name,
317 if (ai->Addr.Variable.descr1)
320 (HChar*)VG_(indexXA)(ai->Addr.Variable.descr1, 0) );
321 if (ai->Addr.Variable.descr2)
324 (HChar*)VG_(indexXA)(ai->Addr.Variable.descr2, 0) );
331 VG_(pp_SectKind)(ai->Addr.SectKind.kind),
332 ai->Addr.SectKind.objname,
341 void VG_(pp_addrinfo) ( Addr a, AddrInfo* ai )
343 pp_addrinfo_WRK (a, ai, False /*mc*/, False /*maybe_gcc*/);
346 void VG_(pp_addrinfo_mc) ( Addr a, AddrInfo* ai, Bool maybe_gcc )
348 pp_addrinfo_WRK (a, ai, True /*mc*/, maybe_gcc);