Lines Matching refs:DebugInfo
4 /*--- debuginfo.c ---*/
74 debuginfo reading confusing. Recently I arrived at some
76 kinds of address used in the debuginfo reading process:
112 static DebugInfo* debugInfo_list = NULL;
118 in some DebugInfo-search-intensive situations, most notably stack
120 static void move_DebugInfo_one_step_forward ( DebugInfo* di )
122 DebugInfo *di0, *di1, *di2;
137 DebugInfo* tmp;
169 /* Allocate and zero out a new DebugInfo record. */
171 DebugInfo* alloc_DebugInfo( const UChar* filename )
174 DebugInfo* di;
178 di = ML_(dinfo_zalloc)("di.debuginfo.aDI.1", sizeof(DebugInfo));
180 di->fsm.filename = ML_(dinfo_strdup)("di.debuginfo.aDI.2", filename);
182 ML_(dinfo_zalloc), "di.debuginfo.aDI.3",
201 /* Free a DebugInfo, and also all the stuff hanging off it. */
202 static void free_DebugInfo ( DebugInfo* di )
262 (as we have just freed them) or which reside in the DebugInfo's
299 static void discard_DebugInfo ( DebugInfo* di )
303 DebugInfo** prev_next_ptr = &debugInfo_list;
304 DebugInfo* curr = debugInfo_list;
342 DebugInfo* curr;
393 static Bool do_DebugInfos_overlap ( DebugInfo* di1, DebugInfo* di2 )
415 DebugInfo* curr;
437 static void discard_DebugInfos_which_overlap_with ( DebugInfo* diRef )
439 DebugInfo* di;
455 /* Find the existing DebugInfo for |filename| or if not found, create
457 and the new DebugInfo is added to debugInfo_list. */
458 static DebugInfo* find_or_create_DebugInfo_for ( UChar* filename )
460 DebugInfo* di;
477 /* Debuginfo reading for 'di' has just been successfully completed.
481 static void check_CFSI_related_invariants ( DebugInfo* di )
483 DebugInfo* di2 = NULL;
488 /* This fn isn't called until after debuginfo for this object has
566 /*--- TOP LEVEL: INITIALISE THE DEBUGINFO SYSTEM ---*/
604 into the accept state, call here to actually get the debuginfo read
658 this DebugInfo? No - it contains info on the rw/rx
674 /* Notify the debuginfo system about a new mapping. This is the way
687 refer to the debuginfo read as a result of this specific mapping,
697 DebugInfo* di;
745 DebugInfo fake_di;
849 DebugInfo fake_di;
868 DebugInfo fake_di;
889 /* See if we have a DebugInfo for this filename. If not,
912 already read debuginfo for this object. So let's do so now.
917 debuginfo for this mapping for whatever reason, go no
971 /* Find a DebugInfo containing a FSM that has [a, +len) previously
973 debuginfo
975 DebugInfo* di;
981 continue; /* already have debuginfo for this object */
1019 /* Check if we're now in an accept state and read debuginfo. Finally. */
1024 means nobody will ever be able to refer to this debuginfo by
1109 HChar* mashed = ML_(dinfo_zalloc)("di.debuginfo.dnpdi.1", mashedSzB);
1121 HChar* mashed = ML_(dinfo_zalloc)("di.debuginfo.dnpdi.2", mashedSzB);
1137 /* Try to find a matching PDB file from which to read debuginfo.
1143 pdbname = ML_(dinfo_zalloc)("di.debuginfo.lpd1", sz_exename+5);
1233 { DebugInfo* di = find_or_create_DebugInfo_for(exename);
1271 DebugInfo *di, *di2;
1313 *pdi to the relevant DebugInfo, and *symno to the symtab entry
1318 static void search_all_symtabs ( Addr ptr, /*OUT*/DebugInfo** pdi,
1324 DebugInfo* di;
1378 *pdi to the relevant DebugInfo, and *locno to the loctab entry
1380 static void search_all_loctabs ( Addr ptr, /*OUT*/DebugInfo** pdi,
1384 DebugInfo* di;
1416 DebugInfo* di;
1468 DebugInfo* si;
1631 DebugInfo* di;
1660 /* Map a code address to its DebugInfo. Returns NULL if not found. Doesn't
1662 DebugInfo* VG_(find_DebugInfo) ( Addr a )
1665 DebugInfo* di;
1683 DebugInfo* si;
1695 DebugInfo* si;
1714 DebugInfo* si;
1764 DebugInfo* si;
2129 If found, set *diP to the DebugInfo in which it resides, and
2130 *ixP to the index in that DebugInfo's cfsi array.
2132 If not found, set *diP to (DebugInfo*)1 and *ixP to zero.
2135 static void find_DiCfSI ( /*OUT*/DebugInfo** diP,
2139 DebugInfo* di;
2152 /* Use the per-DebugInfo summary address ranges to skip
2159 /* It might be in this DebugInfo. Search it. */
2172 *diP = (DebugInfo*)1;
2179 be equal to (DebugInfo*)1. */
2187 DebugInfo one step closer to the start of the list. This
2190 done by the above find-the-right-DebugInfo loop by more than
2215 di is (DebugInfo*)1 ==> cache slot in use, no associated di
2226 records are added all at once, when the debuginfo for an object is
2232 struct { Addr ip; DebugInfo* di; Word ix; }
2261 if (UNLIKELY(ce->di == (DebugInfo*)1)) {
2274 DebugInfo* di, DiCfSI* cfsi )
2357 DebugInfo list. */
2362 DebugInfo* di;
2412 DebugInfo* di;
2533 DebugInfo* di;
2546 /* Use the per-DebugInfo summary address ranges to skip
2581 DebugInfo one step closer to the start of the list. This makes
2584 find-the-right-DebugInfo loop by more than a factor of 20. */
2677 const DebugInfo* di )
3041 DebugInfo* di;
3050 /* first, find the DebugInfo that pertains to 'ip'. */
3073 DebugInfo one step closer to the start of the list. This makes
3180 DebugInfo* di;
3230 DebugInfo. Wade through them and see if the data addresses
3377 Addr ip, const DebugInfo* di, DiVariable* var,
3510 DebugInfo* di;
3513 XArray* res = VG_(newXA)( ML_(dinfo_zalloc), "di.debuginfo.dgsbai.1",
3522 /* first, find the DebugInfo that pertains to 'ip'. */
3545 DebugInfo one step closer to the start of the list. This makes
3625 DebugInfo* di;
3629 /* The first thing to do is find the DebugInfo that
3637 /* If this fails, we were unable to find any DebugInfo with the
3643 gvars = VG_(newXA)( ML_(dinfo_zalloc), "di.debuginfo.dggbfd.1",
3751 /*--- DebugInfo accessor functions ---*/
3754 const DebugInfo* VG_(next_DebugInfo)(const DebugInfo* di)
3761 Addr VG_(DebugInfo_get_text_avma)(const DebugInfo* di)
3766 SizeT VG_(DebugInfo_get_text_size)(const DebugInfo* di)
3771 Addr VG_(DebugInfo_get_plt_avma)(const DebugInfo* di)
3776 SizeT VG_(DebugInfo_get_plt_size)(const DebugInfo* di)
3781 Addr VG_(DebugInfo_get_gotplt_avma)(const DebugInfo* di)
3786 SizeT VG_(DebugInfo_get_gotplt_size)(const DebugInfo* di)
3791 const UChar* VG_(DebugInfo_get_soname)(const DebugInfo* di)
3796 const UChar* VG_(DebugInfo_get_filename)(const DebugInfo* di)
3801 PtrdiffT VG_(DebugInfo_get_text_bias)(const DebugInfo* di)
3806 Int VG_(DebugInfo_syms_howmany) ( const DebugInfo *si )
3811 void VG_(DebugInfo_syms_getidx) ( const DebugInfo *si,
3861 DebugInfo* di;