Lines Matching refs:dbg

32 _dwarf_arange_cleanup(Dwarf_Debug dbg)
37 STAILQ_FOREACH_SAFE(as, &dbg->dbg_aslist, as_next, tas) {
43 STAILQ_REMOVE(&dbg->dbg_aslist, as, _Dwarf_ArangeSet, as_next);
47 if (dbg->dbg_arange_array)
48 free(dbg->dbg_arange_array);
50 dbg->dbg_arange_array = NULL;
51 dbg->dbg_arange_cnt = 0;
55 _dwarf_arange_init(Dwarf_Debug dbg, Dwarf_Error *error)
66 if ((ds = _dwarf_find_section(dbg, ".debug_aranges")) == NULL)
69 if (!dbg->dbg_info_loaded) {
70 ret = _dwarf_info_load(dbg, 1, 1, error);
79 DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY);
83 STAILQ_INSERT_TAIL(&dbg->dbg_aslist, as, as_next);
86 length = dbg->read(ds->ds_data, &offset, 4);
89 length = dbg->read(ds->ds_data, &offset, 8);
94 as->as_version = dbg->read(ds->ds_data, &offset, 2);
96 DWARF_SET_ERROR(dbg, error, DW_DLE_VERSION_STAMP_ERROR);
101 as->as_cu_offset = dbg->read(ds->ds_data, &offset, dwarf_size);
102 STAILQ_FOREACH(cu, &dbg->dbg_cu, cu_next) {
107 DWARF_SET_ERROR(dbg, error, DW_DLE_ARANGE_OFFSET_BAD);
113 as->as_addrsz = dbg->read(ds->ds_data, &offset, 1);
114 as->as_segsz = dbg->read(ds->ds_data, &offset, 1);
121 addr = dbg->read(ds->ds_data, &offset, as->as_addrsz);
122 range = dbg->read(ds->ds_data, &offset, as->as_addrsz);
127 DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY);
134 dbg->dbg_arange_cnt++;
139 if (dbg->dbg_arange_cnt > 0) {
140 if ((dbg->dbg_arange_array = malloc(dbg->dbg_arange_cnt *
142 DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY);
148 STAILQ_FOREACH(as, &dbg->dbg_aslist, as_next) {
150 dbg->dbg_arange_array[i++] = ar;
152 assert((Dwarf_Unsigned)i == dbg->dbg_arange_cnt);
159 _dwarf_arange_cleanup(dbg);
165 _dwarf_arange_gen(Dwarf_P_Debug dbg, Dwarf_Error *error)
174 as = dbg->dbgp_as;
182 as->as_addrsz = dbg->dbg_pointer_size;
186 if ((ret = _dwarf_section_init(dbg, &ds, ".debug_aranges", 0, error)) !=
191 RCHECK(_dwarf_reloc_section_init(dbg, &drs, ds, error));
196 RCHECK(_dwarf_reloc_entry_add(dbg, drs, ds, dwarf_drt_data_reloc, 4,
208 RCHECK(_dwarf_reloc_entry_add(dbg, drs, ds,
209 dwarf_drt_data_reloc, dbg->dbg_pointer_size, ds->ds_size,
212 RCHECK(_dwarf_reloc_entry_add_pair(dbg, drs, ds,
213 dbg->dbg_pointer_size, ds->ds_size, ar->ar_symndx,
216 RCHECK(WRITE_VALUE(ar->ar_range, dbg->dbg_pointer_size));
218 RCHECK(WRITE_VALUE(0, dbg->dbg_pointer_size));
219 RCHECK(WRITE_VALUE(0, dbg->dbg_pointer_size));
224 dbg->write(ds->ds_data, &offset, as->as_length, 4);
227 RCHECK(_dwarf_section_callback(dbg, ds, SHT_PROGBITS, 0, 0, 0, error));
230 RCHECK(_dwarf_reloc_section_finalize(dbg, drs, error));
235 _dwarf_reloc_section_free(dbg, &drs);
238 _dwarf_section_free(dbg, &ds);
244 _dwarf_arange_pro_cleanup(Dwarf_P_Debug dbg)
249 assert(dbg != NULL && dbg->dbg_mode == DW_DLC_WRITE);
250 if (dbg->dbgp_as == NULL)
253 as = dbg->dbgp_as;
259 dbg->dbgp_as = NULL;