Home | History | Annotate | Download | only in m_debuginfo

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);
198 /* Free a DebugInfo, and also all the stuff hanging off it. */
199 static void free_DebugInfo ( DebugInfo* di )
257 (as we have just freed them) or which reside in the DebugInfo's
294 static void discard_DebugInfo ( DebugInfo* di )
298 DebugInfo** prev_next_ptr = &debugInfo_list;
299 DebugInfo* curr = debugInfo_list;
337 DebugInfo* curr;
389 static Bool do_DebugInfos_overlap ( DebugInfo* di1, DebugInfo* di2 )
422 DebugInfo* curr;
445 static void discard_DebugInfos_which_overlap_with ( DebugInfo* diRef )
447 DebugInfo* di;
463 /* Find the existing DebugInfo for |filename| or if not found, create
465 and the new DebugInfo is added to debugInfo_list. */
466 static DebugInfo* find_or_create_DebugInfo_for ( UChar* filename )
468 DebugInfo* di;
485 /* Debuginfo reading for 'di' has just been successfully completed.
489 static void check_CFSI_related_invariants ( DebugInfo* di )
491 DebugInfo* di2 = NULL;
493 /* This fn isn't called until after debuginfo for this object has
548 /*--- TOP LEVEL: INITIALISE THE DEBUGINFO SYSTEM ---*/
586 into the accept state, call here to actually get the debuginfo read
640 this DebugInfo? No - it contains info on the rw/rx
656 /* Notify the debuginfo system about a new mapping. This is the way
669 refer to the debuginfo read as a result of this specific mapping,
679 DebugInfo* di;
727 DebugInfo fake_di;
834 DebugInfo fake_di;
853 DebugInfo fake_di;
874 /* See if we have a DebugInfo for this filename. If not,
918 already read debuginfo for this object. So let's do so now.
923 debuginfo for this mapping for whatever reason, go no
977 DebugInfo containing a FSM that has [a, +len) previously
979 is found, conclude we're in an accept state and read debuginfo
981 DebugInfo* di;
985 continue; /* already have debuginfo for this object */
1016 /* And since we're now in an accept state, read debuginfo. Finally. */
1020 means nobody will ever be able to refer to this debuginfo by
1105 HChar* mashed = ML_(dinfo_zalloc)("di.debuginfo.dnpdi.1", mashedSzB);
1117 HChar* mashed = ML_(dinfo_zalloc)("di.debuginfo.dnpdi.2", mashedSzB);
1133 /* Try to find a matching PDB file from which to read debuginfo.
1139 pdbname = ML_(dinfo_zalloc)("di.debuginfo.lpd1", sz_exename+5);
1229 { DebugInfo* di = find_or_create_DebugInfo_for(exename);
1267 DebugInfo *di, *di2;
1284 *pdi to the relevant DebugInfo, and *symno to the symtab entry
1289 static void search_all_symtabs ( Addr ptr, /*OUT*/DebugInfo** pdi,
1295 DebugInfo* di;
1351 *pdi to the relevant DebugInfo, and *locno to the loctab entry
1353 static void search_all_loctabs ( Addr ptr, /*OUT*/DebugInfo** pdi,
1357 DebugInfo* di;
1389 DebugInfo* di;
1441 DebugInfo* si;
1588 DebugInfo* di;
1617 /* Map a code address to its DebugInfo. Returns NULL if not found. Doesn't
1619 DebugInfo* VG_(find_DebugInfo) ( Addr a )
1622 DebugInfo* di;
1640 DebugInfo* si;
1652 DebugInfo* si;
1671 DebugInfo* si;
1721 DebugInfo* si;
2081 If found, set *diP to the DebugInfo in which it resides, and
2082 *ixP to the index in that DebugInfo's cfsi array.
2084 If not found, set *diP to (DebugInfo*)1 and *ixP to zero.
2087 static void find_DiCfSI ( /*OUT*/DebugInfo** diP,
2091 DebugInfo* di;
2104 /* Use the per-DebugInfo summary address ranges to skip
2111 /* It might be in this DebugInfo. Search it. */
2124 *diP = (DebugInfo*)1;
2131 be equal to (DebugInfo*)1. */
2139 DebugInfo one step closer to the start of the list. This
2142 done by the above find-the-right-DebugInfo loop by more than
2167 di is (DebugInfo*)1 ==> cache slot in use, no associated di
2178 records are added all at once, when the debuginfo for an object is
2184 struct { Addr ip; DebugInfo* di; Word ix; }
2213 if (UNLIKELY(ce->di == (DebugInfo*)1)) {
2226 DebugInfo* di, DiCfSI* cfsi )
2299 DebugInfo list. */
2304 DebugInfo* di;
2354 DebugInfo* di;
2469 DebugInfo* di;
2482 /* Use the per-DebugInfo summary address ranges to skip
2517 DebugInfo one step closer to the start of the list. This makes
2520 find-the-right-DebugInfo loop by more than a factor of 20. */
2613 const DebugInfo* di )
2977 DebugInfo* di;
2986 /* first, find the DebugInfo that pertains to 'ip'. */
3009 DebugInfo one step closer to the start of the list. This makes
3116 DebugInfo* di;
3166 DebugInfo. Wade through them and see if the data addresses
3313 Addr ip, const DebugInfo* di, DiVariable* var,
3446 DebugInfo* di;
3449 XArray* res = VG_(newXA)( ML_(dinfo_zalloc), "di.debuginfo.dgsbai.1",
3458 /* first, find the DebugInfo that pertains to 'ip'. */
3481 DebugInfo one step closer to the start of the list. This makes
3561 DebugInfo* di;
3565 /* The first thing to do is find the DebugInfo that
3573 /* If this fails, we were unable to find any DebugInfo with the
3579 gvars = VG_(newXA)( ML_(dinfo_zalloc), "di.debuginfo.dggbfd.1",
3687 /*--- DebugInfo accessor functions ---*/
3690 const DebugInfo* VG_(next_DebugInfo)(const DebugInfo* di)
3697 Addr VG_(DebugInfo_get_text_avma)(const DebugInfo* di)
3702 SizeT VG_(DebugInfo_get_text_size)(const DebugInfo* di)
3707 Addr VG_(DebugInfo_get_plt_avma)(const DebugInfo* di)
3712 SizeT VG_(DebugInfo_get_plt_size)(const DebugInfo* di)
3717 Addr VG_(DebugInfo_get_gotplt_avma)(const DebugInfo* di)
3722 SizeT VG_(DebugInfo_get_gotplt_size)(const DebugInfo* di)
3727 const UChar* VG_(DebugInfo_get_soname)(const DebugInfo* di)
3732 const UChar* VG_(DebugInfo_get_filename)(const DebugInfo* di)
3737 PtrdiffT VG_(DebugInfo_get_text_bias)(const DebugInfo* di)
3742 Int VG_(DebugInfo_syms_howmany) ( const DebugInfo *si )
3747 void VG_(DebugInfo_syms_getidx) ( const DebugInfo *si,
3797 DebugInfo* di;