Lines Matching refs:dso

42 #include "dso.h"
284 static int unwind_spec_ehframe(struct dso *dso, struct machine *machine,
292 r = dso__data_read_offset(dso, machine, offset,
305 static int read_unwind_spec_eh_frame(struct dso *dso, struct unwind_info *ui,
313 if (dso->data.eh_frame_hdr_offset == 0) {
314 fd = dso__data_get_fd(dso, ui->machine);
320 &dso->data.eh_frame_hdr_addr,
321 &dso->data.eh_frame_hdr_offset);
322 dso->data.elf_base_addr = elf_base_address(fd);
323 dso__data_put_fd(dso);
324 if (ret || dso->data.eh_frame_hdr_offset == 0)
332 if (map__dso(map) == dso && start < base_addr)
335 base_addr -= dso->data.elf_base_addr;
337 *segbase = base_addr + dso->data.eh_frame_hdr_addr;
338 ret = unwind_spec_ehframe(dso, ui->machine, dso->data.eh_frame_hdr_offset,
348 static int read_unwind_spec_debug_frame(struct dso *dso,
352 u64 ofs = dso->data.debug_frame_offset;
355 * - dso
361 fd = dso__data_get_fd(dso, machine);
364 dso__data_put_fd(dso);
368 fd = open(dso->symsrc_filename, O_RDONLY);
380 dso, DSO_BINARY_TYPE__DEBUGLINK,
391 if (dso->symsrc_filename != NULL) {
395 dso->symsrc_filename,
397 zfree(&dso->symsrc_filename);
399 dso->symsrc_filename = debuglink;
405 dso->data.debug_frame_offset = ofs;
434 struct dso *dso;
443 dso = map__dso(map);
444 if (!dso) {
449 pr_debug("unwind: find_proc_info dso %s\n", dso->name);
452 if (!read_unwind_spec_eh_frame(dso, ui, &table_data, &segbase, &fde_count)) {
468 !read_unwind_spec_debug_frame(dso, ui->machine, &segbase)) {
469 int fd = dso__data_get_fd(dso, ui->machine);
470 int is_exec = elf_is_exec(fd, dso->name);
476 dso__data_put_fd(dso);
478 symfile = dso->symsrc_filename ?: dso->name;
529 struct dso *dso;
538 dso = map__dso(map);
540 if (!dso) {
545 size = dso__data_read_addr(dso, map, ui->machine,