This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gdb and binutils branch master updated. 3343ef86879b9348bb038bc7adecb665236ca4d8


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".

The branch, master has been updated
       via  3343ef86879b9348bb038bc7adecb665236ca4d8 (commit)
       via  18d18ac8105647241a4e24a3a4d0196955666e73 (commit)
       via  80d8d3908b7ef70c325fcdfb455bf5dbc2c68e16 (commit)
      from  03e46fbd3584d08285cb80e5ca235c48d2fa849c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=3343ef86879b9348bb038bc7adecb665236ca4d8

commit 3343ef86879b9348bb038bc7adecb665236ca4d8
Author: Yao Qi <yao@codesourcery.com>
Date:   Fri May 30 16:08:10 2014 +0800

    Skip 'bx reg' on arm-linux
    
    In arm-tdep.c, arm_skip_stub is installed to gdbarch
    skip_trampoline_code, but in arm-linux-tdep.c,
    find_solib_trampoline_target is installed to skip_trampoline_code.
    That means gdb configured for arm-linux target doesn't recognize some
    arm specific trampolines or stubs.  Beside handling generic solib
    trampoline, gdb for arm-linux target should be able to handle arm
    specific trampolines.  This patch is to skip arm specific stubs, if
    any, and as a fallback, skip the generic solib trampoline.
    
    gdb:
    
    2014-06-24  Yao Qi  <yao@codesourcery.com>
    
    	* arm-linux-tdep.c (arm_linux_skip_trampoline_code): New.
    	(arm_linux_init_abi): Set skip_trampoline_code with
    	gdbarch_skip_trampoline_code instead of
    	find_solib_trampoline_target.

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=18d18ac8105647241a4e24a3a4d0196955666e73

commit 18d18ac8105647241a4e24a3a4d0196955666e73
Author: Yao Qi <yao@codesourcery.com>
Date:   Fri May 30 16:06:32 2014 +0800

    Apply stub unwinder to 'bx reg' trampoline
    
    In target arm-none-eabi, prologue unwinder is used for trampoline
    'bx reg'.  However, in target arm-linux, exidx unwinder is selected for
    trampoline at first, which is not expected.  The main function and the
    trampoline is,
    
       0x00009dfc <main+0>: push    {r4, r5, r6, r7, lr}
       ......
       0x0000ac30 <main+3636>:      ldrdeq  r3, [r1], -r8
       0x0000ac34:  bx      r2
       0x0000ac36:  bx      r4
    
    and .ARM.exidx is:
    
    0x9dfc <main>: @0xb404
      Compact model index: 1
      0x97      vsp = r7
      0x20      vsp = vsp + 132
      0x3f      vsp = vsp + 256
      0x80 0xf0 pop {r8, r9, r10, r11}
      0xab      pop {r4, r5, r6, r7, r14}
    
    0xac38 <__aeabi_drsub>: 0x1 [cantunwind]
    
    Trampolines 'bx r2' and 'bx r4' doesn't belong to main, but the exidx
    for main is still selected form them because there is no end address
    of each exidx entry.
    
    Instead of teaching exidx unwinder ignore this trampoline (which looks
    complicated and error prone), I decide to let stub unwinder to handle
    trampoline, because stub undwinder is installed before exidx unwinder,
    and this trampoline can be regarded as a stub too.
    
    This patch is to add the code to match 'bx reg' trampoline in the
    sniffer of stub unwinder.
    
    gdb:
    
    2014-06-24  Yao Qi  <yao@codesourcery.com>
    
    	* arm-tdep.c (arm_stub_unwind_sniffer): Return 1 if
    	arm_skip_bx_reg returns	non-zero.

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=80d8d3908b7ef70c325fcdfb455bf5dbc2c68e16

commit 80d8d3908b7ef70c325fcdfb455bf5dbc2c68e16
Author: Yao Qi <yao@codesourcery.com>
Date:   Fri May 30 15:51:45 2014 +0800

    Skip 'bx reg' trampoline on arm-none-eabi
    
    After this patch
    <https://gcc.gnu.org/ml/gcc-patches/2005-01/msg00813.html> applied to
    GCC, a new trampoline is generated but GDB doesn't recognize it.  This
    patch is to teach GDB to understand this trampoline.  See details
    about this trampoline and the heuristics in the comments.
    
    gdb:
    
    2014-06-24  Yao Qi  <yao@codesourcery.com>
    
    	* arm-tdep.c (arm_skip_bx_reg): New function.
    	(arm_skip_stub): Call arm_skip_bx_reg.

-----------------------------------------------------------------------

Summary of changes:
 gdb/ChangeLog        |   17 +++++++++++
 gdb/arm-linux-tdep.c |   15 +++++++++-
 gdb/arm-tdep.c       |   77 ++++++++++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 106 insertions(+), 3 deletions(-)


hooks/post-receive
-- 
gdb and binutils


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]