Lines Matching defs:lf

1686 	struct line_finder *lf = data;
1691 if ((strtailcmp(fname, lf->fname) != 0) ||
1692 (lf->lno_s > lineno || lf->lno_e < lineno))
1696 if (cu_find_lineinfo(&lf->cu_die, addr, &__fname, &__lineno) > 0
1700 err = line_range_add_line(fname, lineno, lf->lr);
1708 static int find_line_range_by_line(Dwarf_Die *sp_die, struct line_finder *lf)
1712 ret = die_walk_lines(sp_die ?: &lf->cu_die, line_range_walk_cb, lf);
1716 if (!intlist__empty(lf->lr->line_list))
1717 ret = lf->found = 1;
1721 zfree(&lf->lr->path);
1743 struct line_finder *lf = param->data;
1744 struct line_range *lr = lf->lr;
1755 lf->fname = die_get_decl_file(sp_die);
1757 pr_debug("fname: %s, lineno:%d\n", lf->fname, lr->offset);
1758 lf->lno_s = lr->offset + lr->start;
1759 if (lf->lno_s < 0) /* Overflow */
1760 lf->lno_s = INT_MAX;
1761 lf->lno_e = lr->offset + lr->end;
1762 if (lf->lno_e < 0) /* Overflow */
1763 lf->lno_e = INT_MAX;
1764 pr_debug("New line range: %d to %d\n", lf->lno_s, lf->lno_e);
1765 lr->start = lf->lno_s;
1766 lr->end = lf->lno_e;
1769 line_range_inline_cb, lf);
1771 param->retval = find_line_range_by_line(sp_die, lf);
1777 static int find_line_range_by_func(struct line_finder *lf)
1779 struct dwarf_callback_param param = {.data = (void *)lf, .retval = 0};
1780 dwarf_getfuncs(&lf->cu_die, line_range_search_cb, &param, 0);
1786 struct line_finder lf = {.lr = lr, .found = 0};
1797 .cu_die = &lf.cu_die, .sp_die = &lf.sp_die, .found = 0};
1799 .data = (void *)&lf, .retval = 0};
1804 line_range_search_cb(&lf.sp_die, &line_range_param);
1805 if (lf.found)
1811 while (!lf.found && ret >= 0) {
1817 diep = dwarf_offdie(dbg->dbg, off + cuhl, &lf.cu_die);
1825 lf.fname = cu_find_realpath(&lf.cu_die, lr->file);
1827 lf.fname = 0;
1829 if (!lr->file || lf.fname) {
1831 ret = find_line_range_by_func(&lf);
1833 lf.lno_s = lr->start;
1834 lf.lno_e = lr->end;
1835 ret = find_line_range_by_line(NULL, &lf);
1843 if (lf.found) {
1844 comp_dir = cu_get_comp_dir(&lf.cu_die);
1853 return (ret < 0) ? ret : lf.found;