aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYao Qi <yao.qi@linaro.org>2016-12-09 09:51:20 +0000
committerYao Qi <yao.qi@linaro.org>2016-12-09 09:51:20 +0000
commitfc2f703edb656c69b0026a006c6063cdb255e06a (patch)
tree5169d18aa6acb1c9a56eb89f270efc7d8ede49b2
parent198cd59d289209ad63cdd6da45e02a1c12b423a7 (diff)
downloadgdb-fc2f703edb656c69b0026a006c6063cdb255e06a.zip
gdb-fc2f703edb656c69b0026a006c6063cdb255e06a.tar.gz
gdb-fc2f703edb656c69b0026a006c6063cdb255e06a.tar.bz2
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.
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/aarch64-tdep.c2
2 files changed, 7 insertions, 1 deletions
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);
}
};