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=,
discriminator=, 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=,
discriminator=, 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 =
offset = 8
len = 18091248
rtti_count = 18091248
phase2_call_unexpected_after_unwind = 9
in_range =
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>: andsr3, 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 0x11a6be818508776
r1 0xb 11
r2 0x6800 26624
r3 0x8002048
r4 0x86800 550912
r5 0x0 0
r6 0x11a6bc018508736
r7 0x11a6bc018508736
r8 0x0 0
r9 0xff04080
r100x11a6b4418508612
r110x1a5b5f2c 442195756
r120xfa 250
sp 0x11a6a900x11a6a90
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