Hello,
First of all - Thanks you all for the cool product -
libunwind!
I have a question and hope that your answer helps me to
solve a problem I stuck with.
I use a board with ARMv5 architecture (ARM926EJ-S). I have Linux OS and a
C++ application running on that board type. The problem is that I am not
able to get backtraces in case of abort() and exceptions which cause
abort(). If I use kill(getpid(0, SIGABRT) I get correct backtraces. The
problem is well known. So I use libunwind and works if I execute the
application on an ARMv6 board. But in case of ARMv5 it does not work for me.
I cannot get the whole traces. I tried to change methods and it fails (I've
attached the log).
I use Libunwind version 1.1.
More info about CPU used on the board:
# cat /proc/cpuinfo
processor : 0
model name : ARM926EJ-S rev 5 (v5l)
BogoMIPS : 198.76
Features : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant : 0x0
CPU part : 0x926
CPU revision : 5
Hardware : Atmel AT91SAM (Device Tree)
I have a small app just to test backtrace functionality in case of
abort()/throw. I've attached test1.c.
I do compilation using:
arm-buildroot-linux-gnueabi-g++ --std=c++11 -funwind-tables -mapcs-frame
-rdynamic test1.c -lunwind -o test1
Thanks in advance,
Andrey
# # # export UNW_ARM_UNWIND_METHOD=0 # ./test1 Received signal 6 backtrace returned 50 frames [bt]: (0) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (1) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (2) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (3) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (4) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (5) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (6) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (7) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (8) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (9) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (10) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (11) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (12) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (13) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (14) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (15) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (16) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (17) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (18) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (19) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (20) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (21) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (22) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (23) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (24) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (25) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (26) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (27) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (28) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (29) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (30) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (31) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (32) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (33) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (34) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (35) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (36) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (37) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (38) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (39) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (40) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (41) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (42) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (43) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (44) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (45) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (46) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (47) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (48) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] [bt]: (49) /usr/lib/libunwind.so.8(backtrace+0x48) [0xb6f8016c] # # export UNW_ARM_UNWIND_METHOD=1 # ./test1 Received signal 6 backtrace returned 0 frames # # # export UNW_ARM_UNWIND_METHOD=2 # ./test1 Received signal 6 Received signal 11 Segmentation fault (core dumped) # # # export UNW_ARM_UNWIND_METHOD=3 # ./test -sh: ./test: not found # ./test1 Received signal 6 Received signal 11 Segmentation fault (core dumped) # # # # export UNW_ARM_UNWIND_METHOD=4 # ./test1 Received signal 6 backtrace returned 3 frames [bt]: (0) ./test1(_Z12do_backtracei+0x50) [0x8efc] [bt]: (1) /lib/libc.so.6(__default_sa_restorer+0) [0xb6c21290] [bt]: (2) /lib/libc.so.6(gsignal+0x34) [0xb6c1fff8] #
test1.c
Description: Binary data
_______________________________________________ Libunwind-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/libunwind-devel
