This is the mail archive of the
gdb-testers@sourceware.org
mailing list for the GDB project.
[binutils-gdb] btrace: Use binary search to find instruction.
- From: sergiodj+buildbot at sergiodj dot net
- To: gdb-testers at sourceware dot org
- Date: Tue, 14 Feb 2017 07:23:48 -0500
- Subject: [binutils-gdb] btrace: Use binary search to find instruction.
- Authentication-results: sourceware.org; auth=none
*** TEST RESULTS FOR COMMIT fdd2bd920bd67e6a1e877baf52b9c138c00da13f ***
Author: Tim Wiederhake <tim.wiederhake@intel.com>
Branch: master
Commit: fdd2bd920bd67e6a1e877baf52b9c138c00da13f
btrace: Use binary search to find instruction.
Currently, btrace_find_insn_by_number will iterate over all function call
segments to find the one that contains the needed instruction. This linear
search is too slow for the upcoming Python bindings that will use this
function to access instructions. This patch introduces a vector in struct
btrace_thread_info that holds pointers to all recorded function segments and
allows to use binary search.
The proper solution is to turn the underlying tree into a vector of objects
and use indices for access. This requires more work. A patch set is
currently being worked on and will be published later.
Signed-off-by: Tim Wiederhake <tim.wiederhake@intel.com>
gdb/ChangeLog:
* btrace.c (btrace_fetch): Copy function call segments pointer
into a vector.
(btrace_clear): Clear the vector.
(btrace_find_insn_by_number): Use binary search to find the correct
function call segment.
* btrace.h (brace_fun_p): New typedef.
(struct btrace_thread_info) <functions>: New field.
Change-Id: I8a7f67e80bfe4ff62c4192f74a2153a70bf2a035