This is the mail archive of the
gdb-cvs@sourceware.org
mailing list for the GDB project.
gdb and binutils branch master updated. 3343ef86879b9348bb038bc7adecb665236ca4d8
- From: qiyao at sourceware dot org
- To: gdb-cvs at sourceware dot org
- Date: 24 Jun 2014 01:34:11 -0000
- Subject: 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