This is the mail archive of the
gdb-prs@sources.redhat.com
mailing list for the GDB project.
Re: tdep/1683: Can't backtrace from syscalls
- From: David Mosberger <davidm at napali dot hpl dot hp dot com>
- To: nobody at sources dot redhat dot com
- Cc: gdb-prs at sources dot redhat dot com,
- Date: 29 Jun 2004 16:08:01 -0000
- Subject: Re: tdep/1683: Can't backtrace from syscalls
- Reply-to: David Mosberger <davidm at napali dot hpl dot hp dot com>
The following reply was made to PR tdep/1683; it has been noted by GNATS.
From: David Mosberger <davidm@napali.hpl.hp.com>
To: Andreas Schwab <schwab@suse.de>
Cc: davidm@hpl.hp.com, gdb-gnats@sources.redhat.com,
nobody@sources.redhat.com, gdb-prs@sources.redhat.com
Subject: Re: tdep/1683: Can't backtrace from syscalls
Date: Tue, 29 Jun 2004 09:05:25 -0700
>>>>> On Tue, 29 Jun 2004 13:51:02 +0200, Andreas Schwab <schwab@suse.de> said:
Andreas> David Mosberger <davidm@napali.hpl.hp.com> writes:
>>>>>>> On Sun, 27 Jun 2004 21:24:49 +0200, Andreas Schwab <schwab@suse.de> said:
Andreas> http://sources.redhat.com/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gdb&pr=1683
Andreas> Applying this patch fixes 22 failures in the testsuite.
Andreas> -#define GATE_AREA_START 0xa000000000000100LL
Andreas> +#define GATE_AREA_START 0xa000000000010700LL
>> Rather fragile, but so was the old code and I see that IN_SIGTRAMP()
>> has been deprecated, which is a good thing. Perhaps this code will
>> vanish altogether in the future. On ia64, it'd be better to use
>> libunwind to check whether a frame is a signal-trampoline frame (via
>> unw_is_signal_frame()).
Andreas> A gdb built with libunwind has exactly the same problem.
Yes, of course, it's using the same code. The problem is that
IN_SIGTRAMP() has an ill-defined interface. I assume/hope that
whatever replacement is being worked on will be frame-based, in which
case taking advantage of unw_is_signal_frame() will be trivial.
--david