Bug 397256 - valgrind arm32 front end: disInstr(arm): unhandled instruction: 0xEC510F1E
Summary: valgrind arm32 front end: disInstr(arm): unhandled instruction: 0xEC510F1E
Status: RESOLVED DUPLICATE of bug 396001
Alias: None
Product: valgrind
Classification: Developer tools
Component: general (show other bugs)
Version: 3.13.0
Platform: Debian stable Linux
: NOR normal
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-08-07 23:48 UTC by Tabor Kelly
Modified: 2018-09-03 09:40 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
Simple swift project, plus logs (1.81 KB, application/gzip)
2018-08-07 23:48 UTC, Tabor Kelly
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Tabor Kelly 2018-08-07 23:48:19 UTC
Created attachment 114368 [details]
Simple swift project, plus logs

I am running Debian Stretch (9/stable) on an arm32 device. I am using a ported version of the Swift 3.1.1 compiler which William Dillon provides:
http://www.housedillon.com/other/swift-3.1.1.tgz

I simply unpacked swift-3.1.1.tgz in /opt/swift-3.1.1:
which swift
/opt/swift-3.1.1/usr/bin/swift

I have compiled the Valgrind 3.13.0 release and also install it in my /opt:
which valgrind
/opt/valgrind-3.13.0/bin/valgrind

I have attached a simple swift project, barely more complicated than "Hello World" which runs fine by itself but fails under valgrind. It includes a log of compiling and running successfully (swift_build_and_run.log) as well as a log of valgrind failing (valgrind_failure.log).

Please let me know if there is any other information that I can provide.
Comment 1 Julian Seward 2018-08-08 04:52:53 UTC
(In reply to Tabor Kelly from comment #0)
> Please let me know if there is any other information that I can provide.

Are you proficient with objdump -d?  Can you figure out what the failing
instruction is?
Comment 2 Tabor Kelly 2018-08-08 16:20:56 UTC
I believe that the two failing instructions are:
/usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.2:
   46d88:	ec510f1e 	mrrc	15, 1, r0, r1, cr14
/opt/swift-3.1.1/usr/lib/swift/linux/libdispatch.so:
   34848:	e7ffdefe 	udf	#65006	; 0xfdee

Here is some more context. In particular, should the udf instruction in libdispatch.so ever have been executed?

/usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.2:     file format elf32-littlearm
00046d1c <OPENSSL_cleanse@@OPENSSL_1.0.2d>:
   46d1c:	e02cc00c 	eor	ip, ip, ip
   46d20:	e3510007 	cmp	r1, #7
   46d24:	22411004 	subcs	r1, r1, #4
   46d28:	2a000005 	bcs	46d44 <OPENSSL_cleanse@@OPENSSL_1.0.2d+0x28>
   46d2c:	e3510000 	cmp	r1, #0
   46d30:	0a00000d 	beq	46d6c <OPENSSL_cleanse@@OPENSSL_1.0.2d+0x50>
   46d34:	e4c0c001 	strb	ip, [r0], #1
   46d38:	e2511001 	subs	r1, r1, #1
   46d3c:	8afffffc 	bhi	46d34 <OPENSSL_cleanse@@OPENSSL_1.0.2d+0x18>
   46d40:	ea000009 	b	46d6c <OPENSSL_cleanse@@OPENSSL_1.0.2d+0x50>
   46d44:	e3100003 	tst	r0, #3
   46d48:	0a000002 	beq	46d58 <OPENSSL_cleanse@@OPENSSL_1.0.2d+0x3c>
   46d4c:	e4c0c001 	strb	ip, [r0], #1
   46d50:	e2411001 	sub	r1, r1, #1
   46d54:	eafffffa 	b	46d44 <OPENSSL_cleanse@@OPENSSL_1.0.2d+0x28>
   46d58:	e480c004 	str	ip, [r0], #4
   46d5c:	e2511004 	subs	r1, r1, #4
   46d60:	2afffffc 	bcs	46d58 <OPENSSL_cleanse@@OPENSSL_1.0.2d+0x3c>
   46d64:	e2911004 	adds	r1, r1, #4
   46d68:	1afffff1 	bne	46d34 <OPENSSL_cleanse@@OPENSSL_1.0.2d+0x18>
   46d6c:	e12fff1e 	bx	lr
   46d70:	e320f000 	nop	{0}
   46d74:	e320f000 	nop	{0}
   46d78:	e320f000 	nop	{0}
   46d7c:	e320f000 	nop	{0}
   46d80:	f2200150 	vorr	q0, q0, q0
   46d84:	e12fff1e 	bx	lr
   46d88:	ec510f1e 	mrrc	15, 1, r0, r1, cr14
   46d8c:	e12fff1e 	bx	lr
   46d90:	f3b00300 	aese.8	q0, q0
   46d94:	e12fff1e 	bx	lr
   46d98:	f2000c40 	sha1c.32	q0, q0, q0
   46d9c:	e12fff1e 	bx	lr
   46da0:	f3000c40 	sha256h.32	q0, q0, q0
   46da4:	e12fff1e 	bx	lr
   46da8:	f2a00e00 	vmull.p64	q0, d0, d0
   46dac:	e12fff1e 	bx	lr
   46db0:	e59f0068 	ldr	r0, [pc, #104]	; 46e20 <OPENSSL_cleanse@@OPENSSL_1.0.2d+0x104>
   46db4:	e28f1064 	add	r1, pc, #100	; 0x64
   46db8:	e7910000 	ldr	r0, [r1, r0]
   46dbc:	e0222002 	eor	r2, r2, r2
   46dc0:	e0233003 	eor	r3, r3, r3
   46dc4:	e02cc00c 	eor	ip, ip, ip
   46dc8:	e3100001 	tst	r0, #1
   46dcc:	0a00000b 	beq	46e00 <OPENSSL_cleanse@@OPENSSL_1.0.2d+0xe4>
   46dd0:	f3000150 	veor	q0, q0, q0
   46dd4:	f3022152 	veor	q1, q1, q1
   46dd8:	f3044154 	veor	q2, q2, q2
   46ddc:	f3066156 	veor	q3, q3, q3
   46de0:	f34001f0 	veor	q8, q8, q8
   46de4:	f34221f2 	veor	q9, q9, q9
   46de8:	f34441f4 	veor	q10, q10, q10
   46dec:	f34661f6 	veor	q11, q11, q11
   46df0:	f34881f8 	veor	q12, q12, q12
   46df4:	f34aa1fa 	veor	q13, q13, q13
   46df8:	f34cc1fc 	veor	q14, q14, q14
   46dfc:	f34ee1fe 	veor	q15, q15, q15
   46e00:	e1a0000d 	mov	r0, sp
   46e04:	e12fff1e 	bx	lr
   46e08:	e0200000 	eor	r0, r0, r0
   46e0c:	e12fff1e 	bx	lr
   46e10:	e0200000 	eor	r0, r0, r0
   46e14:	e12fff1e 	bx	lr
   46e18:	e320f000 	nop	{0}
   46e1c:	e320f000 	nop	{0}
   46e20:	000ec814 	andeq	ip, lr, r4, lsl r8
   46e24:	e320f000 	nop	{0}
   46e28:	e320f000 	nop	{0}
   46e2c:	e320f000 	nop	{0}
   46e30:	e320f000 	nop	{0}
   46e34:	e320f000 	nop	{0}
   46e38:	e320f000 	nop	{0}
   46e3c:	e320f000 	nop	{0}
   46e40:	680a6803 	stmdavs	sl, {r0, r1, fp, sp, lr}
   46e44:	d1111a9b 			; <UNDEFINED> instruction: 0xd1111a9b
   46e48:	4604b570 			; <UNDEFINED> instruction: 0x4604b570
   46e4c:	460d4e0d 	strmi	r4, [sp], -sp, lsl #28
   46e50:	6830447e 	ldmdavs	r0!, {r1, r2, r3, r4, r5, r6, sl, lr}
   46e54:	f7fbb120 			; <UNDEFINED> instruction: 0xf7fbb120
   46e58:	6821ef52 	stmdavs	r1!, {r1, r4, r6, r8, r9, sl, fp, sp, lr, pc}
   46e5c:	dc074288 	sfmle	f4, 4, [r7], {136}	; 0x88
   46e60:	68a068a9 	stmiavs	r0!, {r0, r3, r5, r7, fp, sp, lr}
   46e64:	4070e8bd 	ldrhtmi	lr, [r0], #-141	; 0xffffff73
   46e68:	ba06f7f7 	blt	204e4c <_shadow_DES_check_key@@OPENSSL_1.0.2d+0xd1678>
   46e6c:	47704618 			; <UNDEFINED> instruction: 0x47704618
   46e70:	f7f76830 			; <UNDEFINED> instruction: 0xf7f76830
   46e74:	68a9ed82 	stmiavs	r9!, {r1, r7, r8, sl, fp, sp, lr, pc}
   46e78:	68a06843 	stmiavs	r0!, {r0, r1, r6, fp, sp, lr}
   46e7c:	4070e8bd 	ldrhtmi	lr, [r0], #-141	; 0xffffff73
   46e80:	bf004718 	svclt	0x00004718
   46e84:	000ec7e4 	andeq	ip, lr, r4, ror #15
   46e88:	6803680a 	stmdavs	r3, {r1, r3, fp, sp, lr}
   46e8c:	68986891 	ldmvs	r8, {r0, r4, r7, fp, sp, lr}
   46e90:	b9f2f7f7 	ldmiblt	r2!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, ip, sp, lr, pc}^
   46e94:	4604b538 			; <UNDEFINED> instruction: 0x4604b538
   46e98:	447d4d0b 	ldrbtmi	r4, [sp], #-3339	; 0xfffff2f5
   46e9c:	b1206828 			; <UNDEFINED> instruction: 0xb1206828
   46ea0:	ef2cf7fb 	svc	0x002cf7fb
   46ea4:	42886821 	addmi	r6, r8, #2162688	; 0x210000
   46ea8:	68a0dc05 	stmiavs	r0!, {r0, r2, sl, fp, ip, lr, pc}
   46eac:	ef70f7fb 	svc	0x0070f7fb
   46eb0:	40586823 	subsmi	r6, r8, r3, lsr #16
   46eb4:	6828bd38 	stmdavs	r8!, {r3, r4, r5, r8, sl, fp, ip, sp, pc}
   46eb8:	ed5ef7f7 	ldcl	7, cr15, [lr, #-988]	; 0xfffffc24
   46ebc:	68a06803 	stmiavs	r0!, {r0, r1, fp, sp, lr}
   46ec0:	68234798 	stmdavs	r3!, {r3, r4, r7, r8, r9, sl, lr}
   46ec4:	bd384058 	ldclt	0, cr4, [r8, #-352]!	; 0xfffffea0
   46ec8:	000ec79a 	muleq	lr, sl, r7
   46ecc:	b91af7f7 	ldmdblt	sl, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, ip, sp, lr, pc}
   46ed0:	680b6802 	stmdavs	fp, {r1, fp, sp, lr}
   46ed4:	d000429a 	mulle	r0, sl, r2
   46ed8:	684b4770 	stmdavs	fp, {r4, r5, r6, r8, r9, sl, lr}^
   46edc:	47186889 	ldrmi	r6, [r8, -r9, lsl #17]
   46ee0:	680b6802 	stmdavs	fp, {r1, fp, sp, lr}
   46ee4:	d108429a 			; <UNDEFINED> instruction: 0xd108429a
   46ee8:	b410684b 	ldrlt	r6, [r0], #-2123	; 0xfffff7b5
   46eec:	688a1c5c 	stmvs	sl, {r2, r3, r4, r6, sl, fp, ip}
   46ef0:	f85d604c 			; <UNDEFINED> instruction: 0xf85d604c
   46ef4:	f8424b04 			; <UNDEFINED> instruction: 0xf8424b04
   46ef8:	47700023 	ldrbmi	r0, [r0, -r3, lsr #32]!

/opt/swift-3.1.1/usr/lib/swift/linux/libdispatch.so:     file format elf32-littlearm
00034754 <dispatch_once_f>:
   34754:	e92d4c70 	push	{r4, r5, r6, sl, fp, lr}
   34758:	e28db010 	add	fp, sp, #16
   3475c:	e1a04000 	mov	r4, r0
   34760:	e59f00e4 	ldr	r0, [pc, #228]	; 3484c <dispatch_once_f+0xf8>
   34764:	e1a05002 	mov	r5, r2
   34768:	e1a06001 	mov	r6, r1
   3476c:	e08f0000 	add	r0, pc, r0
   34770:	ebffd38d 	bl	295ac <__tls_get_addr@plt>
   34774:	e5900000 	ldr	r0, [r0]
   34778:	e3500000 	cmp	r0, #0
   3477c:	0a000025 	beq	34818 <dispatch_once_f+0xc4>
   34780:	e1941f9f 	ldrex	r1, [r4]
   34784:	e3510000 	cmp	r1, #0
   34788:	1a00001c 	bne	34800 <dispatch_once_f+0xac>
   3478c:	e1841f90 	strex	r1, r0, [r4]
   34790:	e3510000 	cmp	r1, #0
   34794:	1afffff9 	bne	34780 <dispatch_once_f+0x2c>
   34798:	e1a00006 	mov	r0, r6
   3479c:	e1a01005 	mov	r1, r5
   347a0:	f57ff05b 	dmb	ish
   347a4:	ebffe162 	bl	2cd34 <_dispatch_client_callout>
   347a8:	e59f00a4 	ldr	r0, [pc, #164]	; 34854 <dispatch_once_f+0x100>
   347ac:	e08f0000 	add	r0, pc, r0
   347b0:	ebffd37d 	bl	295ac <__tls_get_addr@plt>
   347b4:	e5905000 	ldr	r5, [r0]
   347b8:	e3550000 	cmp	r5, #0
   347bc:	0a00001b 	beq	34830 <dispatch_once_f+0xdc>
   347c0:	e3000185 	movw	r0, #389	; 0x185
   347c4:	e3a01001 	mov	r1, #1
   347c8:	e3a02000 	mov	r2, #0
   347cc:	ebffd478 	bl	299b4 <syscall@plt>
   347d0:	e3500000 	cmp	r0, #0
   347d4:	ba00001b 	blt	34848 <dispatch_once_f+0xf4>
   347d8:	e3e00000 	mvn	r0, #0
   347dc:	e1941f9f 	ldrex	r1, [r4]
   347e0:	e1842f90 	strex	r2, r0, [r4]
   347e4:	e3520000 	cmp	r2, #0
   347e8:	1afffffb 	bne	347dc <dispatch_once_f+0x88>
   347ec:	e1510005 	cmp	r1, r5
   347f0:	08bd8c70 	popeq	{r4, r5, r6, sl, fp, pc}
   347f4:	e1a00004 	mov	r0, r4
   347f8:	e8bd4c70 	pop	{r4, r5, r6, sl, fp, lr}
   347fc:	ea004b2d 	b	474b8 <_dispatch_gate_broadcast_slow>
   34800:	e1a00004 	mov	r0, r4
   34804:	e3e01000 	mvn	r1, #0
   34808:	e3a02000 	mov	r2, #0
   3480c:	f57ff01f 	clrex
   34810:	eb004ae4 	bl	473a8 <_dispatch_gate_wait_slow>
   34814:	e8bd8c70 	pop	{r4, r5, r6, sl, fp, pc}
   34818:	eb000207 	bl	3503c <libdispatch_tsd_init>
   3481c:	e59f002c 	ldr	r0, [pc, #44]	; 34850 <dispatch_once_f+0xfc>
   34820:	e08f0000 	add	r0, pc, r0
   34824:	ebffd360 	bl	295ac <__tls_get_addr@plt>
   34828:	e5900000 	ldr	r0, [r0]
   3482c:	eaffffd3 	b	34780 <dispatch_once_f+0x2c>
   34830:	eb000201 	bl	3503c <libdispatch_tsd_init>
   34834:	e59f001c 	ldr	r0, [pc, #28]	; 34858 <dispatch_once_f+0x104>
   34838:	e08f0000 	add	r0, pc, r0
   3483c:	ebffd35a 	bl	295ac <__tls_get_addr@plt>
   34840:	e5905000 	ldr	r5, [r0]
   34844:	eaffffdd 	b	347c0 <dispatch_once_f+0x6c>
   34848:	e7ffdefe 	udf	#65006	; 0xfdee
   3484c:	00049dd4 	.word	0x00049dd4
   34850:	00049d20 	.word	0x00049d20
   34854:	00049d94 	.word	0x00049d94
   34858:	00049d08 	.word	0x00049d08
Comment 3 Julian Seward 2018-09-03 09:40:31 UTC
*** This bug has been marked as a duplicate of bug 396001 ***