btrace: compute line range when printing

The "record function-call-history" command prints the range of source lines
for a function segment when given the /l modifier.  This information is
computed for the entire execution history when processing the recorded branch
trace.

To speed up the initial trace processing, we compute the information when
we print a function segment and only if requested.  The computation is fast
enough (due to the limited scope) that it is not worth storing the data in
struct btrace_function, anymore.

gdb/
	* btrace.h (btrace_function) <lbegin, lend>: Remove.
	* btrace.c (ftrace_debug): Do not print the line range.
	(ftrace_skip_file, ftrace_update_lines): Remove.
	(ftrace_new_function): Remove lbegin and lend initialization.
	(btrace_compute_ftrace_bts): Remove call to ftrace_update_lines.
	* record-btrace.c (btrace_compute_src_line_range): New.
	(btrace_call_history_src_line): Call btrace_compute_src_line_range.
This commit is contained in:
Markus Metzger
2014-06-24 14:25:50 +02:00
parent 95e50b2723
commit ce0dfbeaad
4 changed files with 55 additions and 71 deletions

View File

@@ -150,9 +150,6 @@ struct btrace_function
a fixup to normalize function levels so the smallest level is zero. */
int level;
/* The source line range of this function segment (both inclusive). */
int lbegin, lend;
/* A bit-vector of btrace_function_flag. */
enum btrace_function_flag flags;
};