* [Linux-ia64] gdb problem unwinding abort in signal
@ 2003-04-11 18:17 Mario Smarduch
2003-04-11 18:29 ` David Mosberger
2003-04-11 18:48 ` Mario Smarduch
0 siblings, 2 replies; 3+ messages in thread
From: Mario Smarduch @ 2003-04-11 18:17 UTC (permalink / raw)
To: linux-ia64
When our application aborts in the signal handler (no altstack
is setup) the stack backtrace discontinues at the signal
handler.
(gdb) where
#0 0x20000000000a6342 in kill () at soinit.c:56
#1 0x20000000000a61f0 in raise (sig=6) at ../sysdeps/posix/raise.c:27
#2 0x20000000000a8a70 in abort () at ../sysdeps/generic/abort.c:88
#3 0x4000000000000910 in sig_report_and_die ()
Manually unwinding the stack shows the rp set
to ia64_sigtramp(). The privilaged
gate page simplifies allot of things, but it poses a problem
to our software because we send events for
all signals of importance, and count on the core dump
to capture the full call trace prior to and including the
signal - gdb displays this full backtrace on all other
architectures we run on.
If this is the problem how does one get around it
besides manually unwinding the stack?
- mario.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Linux-ia64] gdb problem unwinding abort in signal
2003-04-11 18:17 [Linux-ia64] gdb problem unwinding abort in signal Mario Smarduch
@ 2003-04-11 18:29 ` David Mosberger
2003-04-11 18:48 ` Mario Smarduch
1 sibling, 0 replies; 3+ messages in thread
From: David Mosberger @ 2003-04-11 18:29 UTC (permalink / raw)
To: linux-ia64
>>>>> On Fri, 11 Apr 2003 13:17:38 -0500, Mario Smarduch <cms063@email.mot.com> said:
Mario> When our application aborts in the signal handler (no
Mario> altstack is setup) the stack backtrace discontinues at the
Mario> signal handler.
Mario> (gdb) where #0 0x20000000000a6342 in kill () at soinit.c:56
Mario> #1 0x20000000000a61f0 in raise (sig=6) at
Mario> ../sysdeps/posix/raise.c:27 #2 0x20000000000a8a70 in abort ()
Mario> at ../sysdeps/generic/abort.c:88 #3 0x4000000000000910 in
Mario> sig_report_and_die ()
Mario> Manually unwinding the stack shows the rp set to
Mario> ia64_sigtramp(). The privilaged gate page simplifies allot of
Mario> things, but it poses a problem to our software because we
Mario> send events for all signals of importance, and count on the
Mario> core dump to capture the full call trace prior to and
Mario> including the signal - gdb displays this full backtrace on
Mario> all other architectures we run on.
Mario> If this is the problem how does one get around it besides
Mario> manually unwinding the stack?
There is a gdb patch in the works that will use libunwind for
backtracing purposes. Unwinding across signal handlers will work just
fine then (at least with reasonably recent kernels). An old
(alpha-quality) snapshot of such a gdb is at:
ftp://ftp.hpl.hp.com/pub/linux-ia64/ugdb-ia64-020531.tar.gz
and someone from Red Hat is now working on updating the gdb patch for
libunwind v0.9 (and hopefully on getting it into the official gdb
tree).
--david
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Linux-ia64] gdb problem unwinding abort in signal
2003-04-11 18:17 [Linux-ia64] gdb problem unwinding abort in signal Mario Smarduch
2003-04-11 18:29 ` David Mosberger
@ 2003-04-11 18:48 ` Mario Smarduch
1 sibling, 0 replies; 3+ messages in thread
From: Mario Smarduch @ 2003-04-11 18:48 UTC (permalink / raw)
To: linux-ia64
David Mosberger wrote:
> >>>>> On Fri, 11 Apr 2003 13:17:38 -0500, Mario Smarduch <cms063@email.mot.com> said:
>
> Mario> When our application aborts in the signal handler (no
> Mario> altstack is setup) the stack backtrace discontinues at the
> Mario> signal handler.
>
> Mario> (gdb) where #0 0x20000000000a6342 in kill () at soinit.c:56
> Mario> #1 0x20000000000a61f0 in raise (sig=6) at
> Mario> ../sysdeps/posix/raise.c:27 #2 0x20000000000a8a70 in abort ()
> Mario> at ../sysdeps/generic/abort.c:88 #3 0x4000000000000910 in
> Mario> sig_report_and_die ()
>
> Mario> Manually unwinding the stack shows the rp set to
> Mario> ia64_sigtramp(). The privilaged gate page simplifies allot of
> Mario> things, but it poses a problem to our software because we
> Mario> send events for all signals of importance, and count on the
> Mario> core dump to capture the full call trace prior to and
> Mario> including the signal - gdb displays this full backtrace on
> Mario> all other architectures we run on.
>
> Mario> If this is the problem how does one get around it besides
> Mario> manually unwinding the stack?
>
> There is a gdb patch in the works that will use libunwind for
> backtracing purposes. Unwinding across signal handlers will work just
> fine then (at least with reasonably recent kernels). An old
> (alpha-quality) snapshot of such a gdb is at:
>
> ftp://ftp.hpl.hp.com/pub/linux-ia64/ugdb-ia64-020531.tar.gz
>
> and someone from Red Hat is now working on updating the gdb patch for
> libunwind v0.9 (and hopefully on getting it into the official gdb
> tree).
>
> --david
Great we'll try it, currently we're running debian
distro 2.4.20-cgl-1.1-mckinley-smp.
thks,
Mario.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2003-04-11 18:48 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-04-11 18:17 [Linux-ia64] gdb problem unwinding abort in signal Mario Smarduch
2003-04-11 18:29 ` David Mosberger
2003-04-11 18:48 ` Mario Smarduch
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox