This is the mail archive of the mailing list for the GDB project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v3 04/12] btrace: Use function segment index in call iterator.

On 2017-05-09 02:55, Tim Wiederhake wrote:
Remove FUNCTION pointer in struct btrace_call_iterator and use an index into
the list of function segments instead.

2017-05-09  Tim Wiederhake  <>


	* btrace.c (btrace_ends_with_single_insn): New function.
	(btrace_call_get, btrace_call_number, btrace_call_begin,
	btrace_call_end, btrace_call_next, btrace_call_prev,
	btrace_find_call_by_number): Use index into call segment vector
	instead of pointer.
	(btrace_call_cmp): Simplify.
* btrace.h (struct btrace_call_iterator): Replace function call segment
	pointer with index into vector.
	* record-btrace.c (record_btrace_call_history): Use index instead of

gdb/btrace.c | 198 ++++++++++++++++++++++------------------------------
 gdb/btrace.h        |   5 +-
 gdb/record-btrace.c |   2 +-
 3 files changed, 87 insertions(+), 118 deletions(-)

diff --git a/gdb/btrace.c b/gdb/btrace.c
index c2d3730..5615aad 100644
--- a/gdb/btrace.c
+++ b/gdb/btrace.c
@@ -2527,12 +2527,33 @@ btrace_find_insn_by_number (struct
btrace_insn_iterator *it,
   return 1;

+/* Returns a non-zero value if the recording ends with a function segment that
+   contains only a single (i.e. the current) instruction.  */
+static int


Otherwise, it LGTM. I'm not familiar with the btrace specific computations, but it made sense to me. I trust that you guys know what you are doing and have tested it enough :).

If I understand correctly, btrace_function::number is 1-based? If so, it would be good to mention it somewhere (if it's not already, but I couldn't find it).



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]