From 3d8d5e79c0d5cdad628b570e3de267f28bea62d1 Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Fri, 13 Nov 2009 22:34:33 +0000 Subject: [PATCH] * arm-tdep.c (arm_skip_stub): Recognize RealView veneer functions. --- gdb/ChangeLog | 4 ++++ gdb/arm-tdep.c | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e55b4d36061..f689b0567bb 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2009-11-13 Daniel Jacobowitz + + * arm-tdep.c (arm_skip_stub): Recognize RealView veneer functions. + 2009-11-13 Maciej W. Rozycki * breakpoint.c (update_watchpoint): Only fiddle with frames for diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index b71d05f5c16..361af898f08 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. */ -- 2.30.2