Lines Matching refs:lr
363 struct line_range *lr, in get_alternative_line_range() argument
366 struct perf_probe_point pp = { .function = lr->function, in get_alternative_line_range()
367 .file = lr->file, in get_alternative_line_range()
368 .line = lr->start }; in get_alternative_line_range()
374 if (lr->end != INT_MAX) in get_alternative_line_range()
375 len = lr->end - lr->start; in get_alternative_line_range()
379 lr->function = result.function; in get_alternative_line_range()
380 lr->file = result.file; in get_alternative_line_range()
381 lr->start = result.line; in get_alternative_line_range()
382 if (lr->end != INT_MAX) in get_alternative_line_range()
383 lr->end = lr->start + len; in get_alternative_line_range()
709 static int __show_line_range(struct line_range *lr, const char *module, in __show_line_range() argument
725 ret = debuginfo__find_line_range(dinfo, lr); in __show_line_range()
727 ret = get_alternative_line_range(dinfo, lr, module, user); in __show_line_range()
729 ret = debuginfo__find_line_range(dinfo, lr); in __show_line_range()
741 tmp = lr->path; in __show_line_range()
742 ret = get_real_path(tmp, lr->comp_dir, &lr->path); in __show_line_range()
745 if (tmp != lr->path) in __show_line_range()
755 if (lr->function) in __show_line_range()
756 fprintf(stdout, "<%s@%s:%d>\n", lr->function, lr->path, in __show_line_range()
757 lr->start - lr->offset); in __show_line_range()
759 fprintf(stdout, "<%s:%d>\n", lr->path, lr->start); in __show_line_range()
761 fp = fopen(lr->path, "r"); in __show_line_range()
763 pr_warning("Failed to open %s: %s\n", lr->path, in __show_line_range()
768 while (l < lr->start) { in __show_line_range()
774 intlist__for_each(ln, lr->line_list) { in __show_line_range()
776 ret = show_one_line(fp, l - lr->offset); in __show_line_range()
780 ret = show_one_line_with_num(fp, l++ - lr->offset); in __show_line_range()
785 if (lr->end == INT_MAX) in __show_line_range()
786 lr->end = l + NR_ADDITIONAL_LINES; in __show_line_range()
787 while (l <= lr->end) { in __show_line_range()
788 ret = show_one_line_or_eof(fp, l++ - lr->offset); in __show_line_range()
797 int show_line_range(struct line_range *lr, const char *module, bool user) in show_line_range() argument
804 ret = __show_line_range(lr, module, user); in show_line_range()
931 int show_line_range(struct line_range *lr __maybe_unused, in show_line_range()
950 void line_range__clear(struct line_range *lr) in line_range__clear() argument
952 free(lr->function); in line_range__clear()
953 free(lr->file); in line_range__clear()
954 free(lr->path); in line_range__clear()
955 free(lr->comp_dir); in line_range__clear()
956 intlist__delete(lr->line_list); in line_range__clear()
957 memset(lr, 0, sizeof(*lr)); in line_range__clear()
960 int line_range__init(struct line_range *lr) in line_range__init() argument
962 memset(lr, 0, sizeof(*lr)); in line_range__init()
963 lr->line_list = intlist__new(NULL); in line_range__init()
964 if (!lr->line_list) in line_range__init()
990 int parse_line_range_desc(const char *arg, struct line_range *lr) in parse_line_range_desc() argument
998 lr->start = 0; in parse_line_range_desc()
999 lr->end = INT_MAX; in parse_line_range_desc()
1005 err = parse_line_num(&range, &lr->start, "start line"); in parse_line_range_desc()
1012 err = parse_line_num(&range, &lr->end, "end line"); in parse_line_range_desc()
1017 lr->end += lr->start; in parse_line_range_desc()
1024 lr->end--; in parse_line_range_desc()
1028 pr_debug("Line range is %d to %d\n", lr->start, lr->end); in parse_line_range_desc()
1031 if (lr->start > lr->end) { in parse_line_range_desc()
1045 lr->file = strdup(++file); in parse_line_range_desc()
1046 if (lr->file == NULL) { in parse_line_range_desc()
1050 lr->function = name; in parse_line_range_desc()
1052 lr->file = name; in parse_line_range_desc()
1054 lr->function = name; in parse_line_range_desc()