Lines Matching refs:dbg
64 static int debuginfo__init_offline_dwarf(struct debuginfo *dbg, in debuginfo__init_offline_dwarf() argument
73 dbg->dwfl = dwfl_begin(&offline_callbacks); in debuginfo__init_offline_dwarf()
74 if (!dbg->dwfl) in debuginfo__init_offline_dwarf()
77 dwfl_report_begin(dbg->dwfl); in debuginfo__init_offline_dwarf()
78 dbg->mod = dwfl_report_offline(dbg->dwfl, "", "", fd); in debuginfo__init_offline_dwarf()
79 if (!dbg->mod) in debuginfo__init_offline_dwarf()
82 dbg->dbg = dwfl_module_getdwarf(dbg->mod, &dbg->bias); in debuginfo__init_offline_dwarf()
83 if (!dbg->dbg) in debuginfo__init_offline_dwarf()
86 dwfl_report_end(dbg->dwfl, NULL, NULL); in debuginfo__init_offline_dwarf()
90 if (dbg->dwfl) in debuginfo__init_offline_dwarf()
91 dwfl_end(dbg->dwfl); in debuginfo__init_offline_dwarf()
94 memset(dbg, 0, sizeof(*dbg)); in debuginfo__init_offline_dwarf()
101 struct debuginfo *dbg = zalloc(sizeof(*dbg)); in __debuginfo__new() local
102 if (!dbg) in __debuginfo__new()
105 if (debuginfo__init_offline_dwarf(dbg, path) < 0) in __debuginfo__new()
106 zfree(&dbg); in __debuginfo__new()
107 if (dbg) in __debuginfo__new()
109 return dbg; in __debuginfo__new()
147 void debuginfo__delete(struct debuginfo *dbg) in debuginfo__delete() argument
149 if (dbg) { in debuginfo__delete()
150 if (dbg->dwfl) in debuginfo__delete()
151 dwfl_end(dbg->dwfl); in debuginfo__delete()
152 free(dbg); in debuginfo__delete()
1065 static int pubname_search_cb(Dwarf *dbg, Dwarf_Global *gl, void *data) in pubname_search_cb() argument
1069 if (dwarf_offdie(dbg, gl->die_offset, param->sp_die)) { in pubname_search_cb()
1074 if (!dwarf_offdie(dbg, gl->cu_offset, param->cu_die)) in pubname_search_cb()
1089 static int debuginfo__find_probe_location(struct debuginfo *dbg, in debuginfo__find_probe_location() argument
1116 dwarf_getpubnames(dbg->dbg, pubname_search_cb, in debuginfo__find_probe_location()
1126 while (!dwarf_nextcu(dbg->dbg, off, &noff, &cuhl, NULL, NULL, NULL)) { in debuginfo__find_probe_location()
1128 diep = dwarf_offdie(dbg->dbg, off + cuhl, &pf->cu_die); in debuginfo__find_probe_location()
1161 static int debuginfo__find_probes(struct debuginfo *dbg, in debuginfo__find_probes() argument
1169 return debuginfo__find_probe_location(dbg, pf); in debuginfo__find_probes()
1172 elf = dwarf_getelf(dbg->dbg); in debuginfo__find_probes()
1189 pf->cfi_dbg = dwarf_getcfi(dbg->dbg); in debuginfo__find_probes()
1193 ret = debuginfo__find_probe_location(dbg, pf); in debuginfo__find_probes()
1338 int debuginfo__find_trace_events(struct debuginfo *dbg, in debuginfo__find_trace_events() argument
1344 .max_tevs = probe_conf.max_probes, .mod = dbg->mod}; in debuginfo__find_trace_events()
1355 ret = debuginfo__find_probes(dbg, &tf.pf); in debuginfo__find_trace_events()
1502 int debuginfo__find_available_vars_at(struct debuginfo *dbg, in debuginfo__find_available_vars_at() argument
1508 .mod = dbg->mod, in debuginfo__find_available_vars_at()
1520 ret = debuginfo__find_probes(dbg, &af.pf); in debuginfo__find_available_vars_at()
1535 int debuginfo__get_text_offset(struct debuginfo *dbg, Dwarf_Addr *offs, in debuginfo__get_text_offset() argument
1545 elf = dwfl_module_getelf(dbg->mod, &dbg->bias); in debuginfo__get_text_offset()
1550 n = dwfl_module_relocations(dbg->mod); in debuginfo__get_text_offset()
1555 p = dwfl_module_relocation_info(dbg->mod, i, &shndx); in debuginfo__get_text_offset()
1573 int debuginfo__find_probe_point(struct debuginfo *dbg, unsigned long addr, in debuginfo__find_probe_point() argument
1582 if (debuginfo__get_text_offset(dbg, &baseaddr, false) == 0) in debuginfo__find_probe_point()
1585 if (!dwarf_addrdie(dbg->dbg, (Dwarf_Addr)addr, &cudie)) { in debuginfo__find_probe_point()
1785 int debuginfo__find_line_range(struct debuginfo *dbg, struct line_range *lr) in debuginfo__find_line_range() argument
1802 dwarf_getpubnames(dbg->dbg, pubname_search_cb, in debuginfo__find_line_range()
1813 if (dwarf_nextcu(dbg->dbg, off, &noff, &cuhl, in debuginfo__find_line_range()
1818 diep = dwarf_offdie(dbg->dbg, off + cuhl, &lf.cu_die); in debuginfo__find_line_range()