aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2009-11-13 22:34:33 +0000
committerDaniel Jacobowitz <drow@false.org>2009-11-13 22:34:33 +0000
commit3d8d5e79c0d5cdad628b570e3de267f28bea62d1 (patch)
tree84320eb6f57b5aad9434a56ac009cd0b45fbb1ce
parent4ac4dd3fece22aa8ef53ea7dc4137ef24b8f50eb (diff)
downloadgdb-3d8d5e79c0d5cdad628b570e3de267f28bea62d1.zip
gdb-3d8d5e79c0d5cdad628b570e3de267f28bea62d1.tar.gz
gdb-3d8d5e79c0d5cdad628b570e3de267f28bea62d1.tar.bz2
* arm-tdep.c (arm_skip_stub): Recognize RealView veneer functions.
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/arm-tdep.c6
2 files changed, 8 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e55b4d3..f689b05 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2009-11-13 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * arm-tdep.c (arm_skip_stub): Recognize RealView veneer functions.
+
2009-11-13 Maciej W. Rozycki <macro@codesourcery.com>
* breakpoint.c (update_watchpoint): Only fiddle with frames for
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index b71d05f..361af89 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -5155,8 +5155,10 @@ arm_skip_stub (struct frame_info *frame, CORE_ADDR pc)
/* If PC is in a Thumb call or return stub, return the address of the
target PC, which is in a register. The thunk functions are called
_call_via_xx, where x is the register name. The possible names
- are r0-r9, sl, fp, ip, sp, and lr. */
- if (strncmp (name, "_call_via_", 10) == 0)
+ are r0-r9, sl, fp, ip, sp, and lr. ARM RealView has similar
+ functions, named __ARM_call_via_r[0-7]. */
+ if (strncmp (name, "_call_via_", 10) == 0
+ || strncmp (name, "__ARM_call_via_", strlen ("__ARM_call_via_")) == 0)
{
/* Use the name suffix to determine which register contains the
target PC. */