From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23742 invoked by alias); 22 Mar 2010 14:34:51 -0000 Received: (qmail 23718 invoked by uid 22791); 22 Mar 2010 14:34:49 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 22 Mar 2010 14:34:45 +0000 Received: (qmail 17561 invoked from network); 22 Mar 2010 14:34:43 -0000 Received: from unknown (HELO dirichlet.schwinge.homeip.net) (thomas@127.0.0.2) by mail.codesourcery.com with ESMTPA; 22 Mar 2010 14:34:43 -0000 From: Thomas Schwinge To: gdb@sourceware.org Cc: dan@codesourcery.com Subject: Ordering of unwinders Date: Mon, 22 Mar 2010 14:34:00 -0000 Message-ID: <87r5ncbf2l.fsf@dirichlet.schwinge.homeip.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha1; protocol="application/pgp-signature" Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2010-03/txt/msg00183.txt.bz2 --=-=-= Content-length: 1694 Hello! GDB on ARM Linux (arm-linux-tdep.c) -- and, from a quick glance, a bunch of other architectures do similar things -- currently has the following series of unwinders configured. These are tried in turn until the first one succeeds. arm_linux_restart_syscall_tramp_frame arm_eabi_linux_rt_sigreturn_tramp_frame arm_eabi_linux_sigreturn_tramp_frame arm_linux_rt_sigreturn_tramp_frame arm_linux_sigreturn_tramp_frame arm_stub_unwind dwarf2_frame_unwind dwarf2_signal_frame_unwind arm_prologue_unwind I'm working on having proper DWARF CFI in glibc for sigreturn frames -- but that information is never going to be used, as the DWARF unwinders are of lower priority than the tramp_frame sniffers. What's the reason? Some weeks ago, I had a quick chat with Dan J. about this issue. He couldn't immediatelly think of a reason why the stub one is in front of the DWARF unwinders. Also, he suggested that the tramp_frame sniffers should be moved down, so that the DWARF unwinders are on top of the list. Technically, the tramp_frame unwinders are on the top of the list, because they use tramp_frame_*prepend*_unwinder for registering in arm-linux-tdep.c:arm_linux_init_abi. tramp_frame_append_unwinder doesn't exist (not yet -- this could be changed easily, of course). The ordering of the five tramp_frame unwinders doesn't matter, correct? What to do about arm_stub_unwind -- move it after the DWARF ones? I can test these proposed changes on a few system configurations, but not on the whole spectrum they potentially affect. (Think: a lot of different / older kernels, different / older libcs, etc.) What do you suggest? Regards, Thomas --=-=-= Content-Type: application/pgp-signature Content-length: 196 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEARECAAYFAkunf/IACgkQC9ZuxbdEiFi70ACffbW/fueMBXIo35NPRd6VTIKK 5kIAnjTt5InWBlgdJgwrEsplOkOEJAnd =Py4n -----END PGP SIGNATURE----- --=-=-=--