Home | History | Annotate | Download | only in m_debuginfo

Lines Matching refs:di

158 static Bool map_image_aboard ( DebugInfo* di, /* only for err msgs */
170 ML_(symerr)(di, True, "Can't stat image (to determine its size)?!");
177 ML_(symerr)(di, True, "Can't open image to read symbols?!");
184 ML_(symerr)(di, True, "Can't mmap image to read symbols?!");
207 ML_(symerr)(di, True, "Invalid Mach-O file (0 too small).");
222 ML_(symerr)(di, True, "Invalid Mach-O file (1 too small).");
246 ML_(symerr)(di, True, "Invalid Mach-O file (2 too small).");
255 ML_(symerr)(di, True,
267 ML_(symerr)(di, True, "Invalid Mach-O file (3 too small).");
272 ML_(symerr)(di, True, "Invalid Mach-O file (thin bigger than fat).");
280 ML_(symerr)(di, True, "Invalid Mach-O file (thin not inside fat).");
286 ML_(symerr)(di, True, "Invalid Mach-O file (bad magic).");
291 ML_(symerr)(di, True, "Invalid Mach-O file (4 too small).");
322 struct _DebugInfo* di,
336 sym_addr = di->text_bias + nl->n_value;
344 if (di->trace_symtab)
350 if (sym_addr <= di->text_avma
351 || sym_addr >= di->text_avma+di->text_size) {
368 disym.pri_name = ML_(addStr)(di, name, -1);
371 di->text_avma+di->text_size - sym_addr;
385 s_a_t_v = ML_(addStr)(di, "start_according_to_valgrind", -1);
525 dsymfile = ML_(dinfo_zalloc)("di.readmacho.dsymfile",
669 Bool ML_(read_macho_debug_info)( struct _DebugInfo* di )
683 /* mmap the object file to look for di->soname and di->text_bias
688 vg_assert(di->fsm.have_rx_map);
689 vg_assert(di->fsm.have_rw_map);
691 for (i = 0; i < VG_(sizeXA)(di->fsm.maps); i++) {
692 struct _DebugInfoMapping* map = VG_(indexXA)(di->fsm.maps, i);
705 "%s (rx at %#lx, rw at %#lx)\n", di->fsm.filename,
712 ok = map_image_aboard( di, &ii, di->fsm.filename );
720 // Read di->soname from LC_ID_DYLIB if present,
723 // Get di->text_bias (aka slide) based on the corresponding LC_SEGMENT
726 di->text_bias = 0;
749 di->soname = ML_(dinfo_strdup)("di.readmacho.dylibname",
758 di->soname = ML_(dinfo_strdup)("di.readmacho.dylinkername",
785 // Basically we need to come up with plausible numbers for di->
792 if (!di->text_present
796 di->text_present = True;
797 di->text_svma = (Addr)seg->vmaddr;
798 di->text_avma = rx_map->avma;
799 di->text_size = seg->vmsize;
800 di->text_bias = di->text_avma - di->text_svma;
806 di->text_debug_svma = di->text_svma;
807 di->text_debug_bias = di->text_bias;
810 if (!di->data_present
813 di->data_present = True;
814 di->data_svma = (Addr)seg->vmaddr;
815 di->data_avma = rw_map->avma;
816 di->data_size = seg->vmsize;
817 di->data_bias = di->data_avma - di->data_svma;
818 di->data_debug_svma = di->data_svma;
819 di->data_debug_bias = di->data_bias;
830 if (!di->soname) {
831 di->soname = ML_(dinfo_strdup)("di.readmacho.noname", "NONE");
834 if (di->trace_symtab) {
836 VG_(printf)("SONAME = %s\n", di->soname);
853 ML_(symerr)(di, False, "Invalid Mach-O file (5 too small).");
858 ML_(symerr)(di, False, "Invalid Mach-O file (bad symbol table).");
874 ML_(dinfo_zalloc), "di.readmacho.candsyms.1",
881 di,
886 di,
892 tidy_up_cand_syms( candSyms, di->trace_symtab );
900 if (di->trace_symtab)
904 ML_(addSym)( di, cand );
923 dsymfilename = find_separate_debug_file( di->fsm.filename );
932 ok = map_image_aboard( di, &iid, dsymfilename );
956 vg_assert(di->fsm.filename);
957 if (is_systemish_library_name(di->fsm.filename))
962 VG_(message)(Vg_DebugMsg, "%s:\n", di->fsm.filename);
976 HChar* cmd = ML_(dinfo_zalloc)( "di.readmacho.tmp1",
978 + VG_(strlen)(di->fsm.filename)
983 VG_(strcat)(cmd, di->fsm.filename);
990 dsymfilename = find_separate_debug_file(di->fsm.filename);
1000 ok = map_image_aboard( di, &iid, dsymfilename );
1020 "WARNING: for %s\n", di->fsm.filename);
1077 di->fsm.filename, di->text_avma, dsymfilename,
1085 ML_(read_debuginfo_dwarf3) ( di,
1100 di, debug_info_img, debug_info_sz,
1128 ML_(symerr)(di, True, "Error reading Mach-O object.");