|
@@ -1395,6 +1395,10 @@ static int probe_point_search_cb(Dwarf_Die *sp_die, void *data)
|
|
|
!die_compare_name(sp_die, pp->function))
|
|
|
return DWARF_CB_OK;
|
|
|
|
|
|
+ /* Check declared file */
|
|
|
+ if (pp->file && strtailcmp(pp->file, dwarf_decl_file(sp_die)))
|
|
|
+ return DWARF_CB_OK;
|
|
|
+
|
|
|
pf->fname = dwarf_decl_file(sp_die);
|
|
|
if (pp->line) { /* Function relative line */
|
|
|
dwarf_decl_line(sp_die, &pf->lno);
|
|
@@ -1840,6 +1844,10 @@ static int line_range_search_cb(Dwarf_Die *sp_die, void *data)
|
|
|
struct line_finder *lf = param->data;
|
|
|
struct line_range *lr = lf->lr;
|
|
|
|
|
|
+ /* Check declared file */
|
|
|
+ if (lr->file && strtailcmp(lr->file, dwarf_decl_file(sp_die)))
|
|
|
+ return DWARF_CB_OK;
|
|
|
+
|
|
|
if (dwarf_tag(sp_die) == DW_TAG_subprogram &&
|
|
|
die_compare_name(sp_die, lr->function)) {
|
|
|
lf->fname = dwarf_decl_file(sp_die);
|