This is the mail archive of the
gdb-cvs@sourceware.org
mailing list for the GDB project.
[binutils-gdb] Use code cache in aarch64 prologue analyzer
- From: Yao Qi <qiyao at sourceware dot org>
- To: gdb-cvs at sourceware dot org
- Date: 9 Dec 2016 09:53:14 -0000
- Subject: [binutils-gdb] Use code cache in aarch64 prologue analyzer
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=fc2f703edb656c69b0026a006c6063cdb255e06a
commit fc2f703edb656c69b0026a006c6063cdb255e06a
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri Dec 9 09:51:20 2016 +0000
Use code cache in aarch64 prologue analyzer
This patch change aarch prologue analyzer using code cache, in order
to improve the performance of remote debugging.
gdb.perf/skip-prologue.exp (measured by wall-time) is improved when
the program is compiled without debug information.
Original Patched Original Patched
without dbg without dbg with dbg with dbg
/ 11.1635239124 9.99472999573 9.65339517593 9.66648793221
-fstack-protector-all 11.2560930252 9.338118 9.63896489143 9.59474396706
gdb:
2016-12-9 Yao Qi <yao.qi@linaro.org>
* aarch64-tdep.c (instruction_reader::read): Call
read_code_unsigned_integer instead of
read_memory_unsigned_integer.
Diff:
---
gdb/ChangeLog | 6 ++++++
gdb/aarch64-tdep.c | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index cd5a9ea..4b268f5 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,11 @@
2016-12-09 Yao Qi <yao.qi@linaro.org>
+ * aarch64-tdep.c (instruction_reader::read): Call
+ read_code_unsigned_integer instead of
+ read_memory_unsigned_integer.
+
+2016-12-09 Yao Qi <yao.qi@linaro.org>
+
* arm-tdep.c (skip_prologue_function): Call
read_code_unsigned_integer instead of
read_memory_unsigned_integer.
diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c
index 590dcf6..0175630 100644
--- a/gdb/aarch64-tdep.c
+++ b/gdb/aarch64-tdep.c
@@ -213,7 +213,7 @@ class instruction_reader : public abstract_instruction_reader
public:
ULONGEST read (CORE_ADDR memaddr, int len, enum bfd_endian byte_order)
{
- return read_memory_unsigned_integer (memaddr, len, byte_order);
+ return read_code_unsigned_integer (memaddr, len, byte_order);
}
};