[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libunwind] libunwind issue on x86

From: M K Saravanan-A19831
Subject: [libunwind] libunwind issue on x86
Date: Thu, 1 Sep 2005 12:44:06 +0530

I have been using the libunwind for IA64 and it works great. But when I tried using the same for x86, I faced a issue where the last frame is missing. This problem occurs when I unwind from a signal handler, the unwind misses the last frame. I have a signal handler for SIGSEGV and this signal handler will unwind and print the call sequence.
I tried a function call sequence main()->funca()->funcb()->funcc()->funcd()->funce(). The last function funce() causes exception and causes the exception handler to run which does the unwind. The problem here is the last function funce()'s frame is missing. Here after funcd() there is the frame for __libc_sigaction().
#03 [0x009daec0] __libc_sigaction() +0x110 in /lib/tls/ (+27ec0)
#04 [0x08049195] funcd(int) +0x11 in ./Exception.out (+1195)
#05 [0x080491a9] funcc(int) +0x11 in ./Exception.out (+11a9)
#06 [0x080491bd] funcb(int) +0x11 in ./Exception.out (+11bd)
#07 [0x080491d1] funca(int) +0x11 in ./Exception.out (+11d1)
#08 [0x080491fb] main() +0x27 in ./Exception.out (+11fb)

Is this a known issue in x86 libunwind? Since the same test work for IA64, I was wondering if this is a known issue and any workaround available.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]