mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-04 17:44:14 +08:00
perf probe: Fix line range to show end line
Line range should reject the range if the number of lines is 0 (e.g. "sched.c:1024+0"), and it should show the lines include the end of line number (e.g. "sched.c:1024-2048" should show 2048th line). LKML-Reference: <20100414223950.14630.42263.stgit@localhost6.localdomain6> Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Mike Galbraith <efault@gmx.de> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
d3b63d7ae0
commit
dda4ab34fe
@ -290,7 +290,7 @@ int show_line_range(struct line_range *lr)
|
||||
|
||||
if (lr->end == INT_MAX)
|
||||
lr->end = l + NR_ADDITIONAL_LINES;
|
||||
while (l < lr->end && !feof(fp) && ret >= 0)
|
||||
while (l <= lr->end && !feof(fp) && ret >= 0)
|
||||
ret = show_one_line(fp, (l++) - lr->offset, false, false);
|
||||
end:
|
||||
fclose(fp);
|
||||
@ -341,9 +341,15 @@ int parse_line_range_desc(const char *arg, struct line_range *lr)
|
||||
ptr = strchr(arg, ':');
|
||||
if (ptr) {
|
||||
lr->start = (int)strtoul(ptr + 1, &tmp, 0);
|
||||
if (*tmp == '+')
|
||||
if (*tmp == '+') {
|
||||
lr->end = lr->start + (int)strtoul(tmp + 1, &tmp, 0);
|
||||
else if (*tmp == '-')
|
||||
lr->end--; /*
|
||||
* Adjust the number of lines here.
|
||||
* If the number of lines == 1, the
|
||||
* the end of line should be equal to
|
||||
* the start of line.
|
||||
*/
|
||||
} else if (*tmp == '-')
|
||||
lr->end = (int)strtoul(tmp + 1, &tmp, 0);
|
||||
else
|
||||
lr->end = INT_MAX;
|
||||
|
Loading…
Reference in New Issue
Block a user