Lines Matching refs:dbg
51 static int debuginfo__init_offline_dwarf(struct debuginfo *dbg, in debuginfo__init_offline_dwarf() argument
60 dbg->dwfl = dwfl_begin(&offline_callbacks); in debuginfo__init_offline_dwarf()
61 if (!dbg->dwfl) in debuginfo__init_offline_dwarf()
64 dwfl_report_begin(dbg->dwfl); in debuginfo__init_offline_dwarf()
65 dbg->mod = dwfl_report_offline(dbg->dwfl, "", "", fd); in debuginfo__init_offline_dwarf()
66 if (!dbg->mod) in debuginfo__init_offline_dwarf()
69 dbg->dbg = dwfl_module_getdwarf(dbg->mod, &dbg->bias); in debuginfo__init_offline_dwarf()
70 if (!dbg->dbg) in debuginfo__init_offline_dwarf()
73 dwfl_report_end(dbg->dwfl, NULL, NULL); in debuginfo__init_offline_dwarf()
77 if (dbg->dwfl) in debuginfo__init_offline_dwarf()
78 dwfl_end(dbg->dwfl); in debuginfo__init_offline_dwarf()
81 memset(dbg, 0, sizeof(*dbg)); in debuginfo__init_offline_dwarf()
88 struct debuginfo *dbg = zalloc(sizeof(*dbg)); in __debuginfo__new() local
89 if (!dbg) in __debuginfo__new()
92 if (debuginfo__init_offline_dwarf(dbg, path) < 0) in __debuginfo__new()
93 zfree(&dbg); in __debuginfo__new()
94 if (dbg) in __debuginfo__new()
96 return dbg; in __debuginfo__new()
134 void debuginfo__delete(struct debuginfo *dbg) in debuginfo__delete() argument
136 if (dbg) { in debuginfo__delete()
137 if (dbg->dwfl) in debuginfo__delete()
138 dwfl_end(dbg->dwfl); in debuginfo__delete()
139 free(dbg); in debuginfo__delete()
1049 static int pubname_search_cb(Dwarf *dbg, Dwarf_Global *gl, void *data) in pubname_search_cb() argument
1053 if (dwarf_offdie(dbg, gl->die_offset, param->sp_die)) { in pubname_search_cb()
1058 if (!dwarf_offdie(dbg, gl->cu_offset, param->cu_die)) in pubname_search_cb()
1073 static int debuginfo__find_probe_location(struct debuginfo *dbg, in debuginfo__find_probe_location() argument
1100 dwarf_getpubnames(dbg->dbg, pubname_search_cb, in debuginfo__find_probe_location()
1110 while (!dwarf_nextcu(dbg->dbg, off, &noff, &cuhl, NULL, NULL, NULL)) { in debuginfo__find_probe_location()
1112 diep = dwarf_offdie(dbg->dbg, off + cuhl, &pf->cu_die); in debuginfo__find_probe_location()
1145 static int debuginfo__find_probes(struct debuginfo *dbg, in debuginfo__find_probes() argument
1153 return debuginfo__find_probe_location(dbg, pf); in debuginfo__find_probes()
1156 elf = dwarf_getelf(dbg->dbg); in debuginfo__find_probes()
1173 pf->cfi_dbg = dwarf_getcfi(dbg->dbg); in debuginfo__find_probes()
1177 ret = debuginfo__find_probe_location(dbg, pf); in debuginfo__find_probes()
1341 int debuginfo__find_trace_events(struct debuginfo *dbg, in debuginfo__find_trace_events() argument
1347 .max_tevs = probe_conf.max_probes, .mod = dbg->mod}; in debuginfo__find_trace_events()
1358 ret = debuginfo__find_probes(dbg, &tf.pf); in debuginfo__find_trace_events()
1505 int debuginfo__find_available_vars_at(struct debuginfo *dbg, in debuginfo__find_available_vars_at() argument
1511 .mod = dbg->mod, in debuginfo__find_available_vars_at()
1523 ret = debuginfo__find_probes(dbg, &af.pf); in debuginfo__find_available_vars_at()
1538 int debuginfo__get_text_offset(struct debuginfo *dbg, Dwarf_Addr *offs, in debuginfo__get_text_offset() argument
1548 elf = dwfl_module_getelf(dbg->mod, &dbg->bias); in debuginfo__get_text_offset()
1553 n = dwfl_module_relocations(dbg->mod); in debuginfo__get_text_offset()
1558 p = dwfl_module_relocation_info(dbg->mod, i, &shndx); in debuginfo__get_text_offset()
1576 int debuginfo__find_probe_point(struct debuginfo *dbg, unsigned long addr, in debuginfo__find_probe_point() argument
1585 if (debuginfo__get_text_offset(dbg, &baseaddr, false) == 0) in debuginfo__find_probe_point()
1588 if (!dwarf_addrdie(dbg->dbg, (Dwarf_Addr)addr, &cudie)) { in debuginfo__find_probe_point()
1788 int debuginfo__find_line_range(struct debuginfo *dbg, struct line_range *lr) in debuginfo__find_line_range() argument
1805 dwarf_getpubnames(dbg->dbg, pubname_search_cb, in debuginfo__find_line_range()
1816 if (dwarf_nextcu(dbg->dbg, off, &noff, &cuhl, in debuginfo__find_line_range()
1821 diep = dwarf_offdie(dbg->dbg, off + cuhl, &lf.cu_die); in debuginfo__find_line_range()