http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60459
Bug ID: 60459 Summary: Crash seen in _Unwind_VRS_Pop() for ARM platform Product: gcc Version: 4.2.1 Status: UNCONFIRMED Severity: blocker Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: raghupv30 at gmail dot com Hi, With ARM target platform, crashes in _Unwind_VRS_Pop() during exception propagation. Below is the stack trace: Program terminated with signal 11, Segmentation fault. #0 _Unwind_VRS_Pop (context=0x1140bf4, regclass=<optimized out>, discriminator=<optimized out>, representation=_UVRSD_UINT32) at /home/ben/Katalix/Toolchain/drx780-build/stb_toolchain_2.1/toolchain_build_arm_nofpu/gcc-4.2.1/gcc/config/arm/unwind-arm.c:269 #0 _Unwind_VRS_Pop (context=0x1140bf4, regclass=<optimized out>, discriminator=<optimized out>, representation=_UVRSD_UINT32) at /home/ben/Katalix/Toolchain/drx780-build/stb_toolchain_2.1/toolchain_build_arm_nofpu/gcc-4.2.1/gcc/config/arm/unwind-arm.c:269 ptr = 0x4 mask = 16384 i = 14 #1 0x1a5ac6f8 in __gnu_unwind_execute (context=0x1140bc0, uws=0x1140b80) at /home/ben/Katalix/Toolchain/drx780-build/stb_toolchain_2.1/toolchain_build_arm_nofpu/gcc-4.2.1/gcc/config/arm/pr-support.c:157 op = 16384 set_pc = 0 reg = 1 #2 0x1a5abdf0 in __gnu_unwind_pr_common (state=_US_UNWIND_FRAME_STARTING, ucbp=0x11416f8, context=0x1140bc0, id=1) at /home/ben/Katalix/Toolchain/drx780-build/stb_toolchain_2.1/toolchain_build_arm_nofpu/gcc-4.2.1/gcc/config/arm/unwind-arm.c:974 uws = {data = 0, next = 0xb14aa8, bytes_left = 0 '\000', words_left = 0 '\000'} data = <optimized out> offset = 8 len = 18091248 rtti_count = 18091248 phase2_call_unexpected_after_unwind = 9 in_range = <optimized out> forced_unwind = 18093816 #3 0x1b09d6dc in ?? () No symbol table info available. #4 0x1b09d6dc in ?? () No symbol table info available. Analysing the core dump: (gdb) x/24i _Unwind_VRS_Pop 0x1a5ac34c <_Unwind_VRS_Pop>: push {r4, r5, r6, r7, r8, r10, lr} 0x1a5ac350 <_Unwind_VRS_Pop+4>: mov r7, r0 0x1a5ac354 <_Unwind_VRS_Pop+8>: sub sp, sp, #140 ; 0x8c 0x1a5ac358 <_Unwind_VRS_Pop+12>: mov r5, r3 0x1a5ac35c <_Unwind_VRS_Pop+16>: cmp r1, #4 0x1a5ac360 <_Unwind_VRS_Pop+20>: addls pc, pc, r1, lsl #2 0x1a5ac364 <_Unwind_VRS_Pop+24>: b 0x1a5ac468 <_Unwind_VRS_Pop+284> 0x1a5ac368 <_Unwind_VRS_Pop+28>: b 0x1a5ac384 <_Unwind_VRS_Pop+56> 0x1a5ac36c <_Unwind_VRS_Pop+32>: b 0x1a5ac3cc <_Unwind_VRS_Pop+128> 0x1a5ac370 <_Unwind_VRS_Pop+36>: b 0x1a5ac37c <_Unwind_VRS_Pop+48> 0x1a5ac374 <_Unwind_VRS_Pop+40>: b 0x1a5ac37c <_Unwind_VRS_Pop+48> 0x1a5ac378 <_Unwind_VRS_Pop+44>: b 0x1a5ac37c <_Unwind_VRS_Pop+48> 0x1a5ac37c <_Unwind_VRS_Pop+48>: mov r0, #1 0x1a5ac380 <_Unwind_VRS_Pop+52>: b 0x1a5ac46c <_Unwind_VRS_Pop+288> 0x1a5ac384 <_Unwind_VRS_Pop+56>: cmp r3, #0 0x1a5ac388 <_Unwind_VRS_Pop+60>: bne 0x1a5ac468 <_Unwind_VRS_Pop+284> 0x1a5ac38c <_Unwind_VRS_Pop+64>: lsl r2, r2, #16 0x1a5ac390 <_Unwind_VRS_Pop+68>: ldr r12, [r0, #56] ; 0x38 0x1a5ac394 <_Unwind_VRS_Pop+72>: lsr r2, r2, #16 0x1a5ac398 <_Unwind_VRS_Pop+76>: mov r1, r3 0x1a5ac39c <_Unwind_VRS_Pop+80>: mov lr, #1 0x1a5ac3a0 <_Unwind_VRS_Pop+84>: ands r3, r2, lr, lsl r1 => 0x1a5ac3a4 <_Unwind_VRS_Pop+88>: ldrne r3, [r12], #4 0x1a5ac3a8 <_Unwind_VRS_Pop+92>: add r0, r7, r1, lsl #2 (gdb) info locals ptr = 0xfa mask = 26624 = 0x6800 i = 11 print ptr $1 = (_uw *) 0xfa (gdb) print *ptr Cannot access memory at address 0xfa (gdb) info reg r0 0x11a6be8 18508776 r1 0xb 11 r2 0x6800 26624 r3 0x800 2048 r4 0x86800 550912 r5 0x0 0 r6 0x11a6bc0 18508736 r7 0x11a6bc0 18508736 r8 0x0 0 r9 0xff0 4080 r10 0x11a6b44 18508612 r11 0x1a5b5f2c 442195756 r12 0xfa 250 sp 0x11a6a90 0x11a6a90 lr 0x1 1 pc 0x1a5ac3a4 0x1a5ac3a4 <_Unwind_VRS_Pop+88> cpsr 0x10 16 Using the gcc in http://ftp.gnu.org/gnu/gcc/gcc-4.2.1/gcc-core-4.2.1.tar.bz2 Is anyone aware of the reason for this crash in _Unwind_VRS_Pop() for ARM platform? Thanks in advance -Raghu