* arm-tdep.c (arm_skip_stub): Recognize RealView veneer functions.
authorDaniel Jacobowitz <drow@false.org>
Fri, 13 Nov 2009 22:34:33 +0000 (22:34 +0000)
committerDaniel Jacobowitz <drow@false.org>
Fri, 13 Nov 2009 22:34:33 +0000 (22:34 +0000)
gdb/ChangeLog
gdb/arm-tdep.c

index e55b4d3606134d6b952d67e6fbb7ad03054c6f85..f689b0567bbaa90f111c01849fa7cb723df5d927 100644 (file)
@@ -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
index b71d05f5c1677db3dc2f9abd507da9d4ab8fdd41..361af898f082340f8cc922ba600a8b37587b4276 100644 (file)
@@ -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.  */