Using the larger vgtrace.rar (871KB) from a message that was posted just a few 
minutes
before the smaller version (22.3KB), then the interesting part is near the end
***** line 358098
==== SB 4145 (evchecks 744961) [tid 1] 0x4002995 
__dl__ZL24debuggerd_signal_handleriP7siginfoPv+584 /system_O/bin/linker+0x2995

------------------------ Front end ------------------------

        (thumb) 0x4002994:  mov r1, r0

              ------ IMark(0x4002994, 2, 1) ------
              t0 = 0x0:I32
              PUT(392) = t0
              t1 = 0x1:I32
              t2 = GET:I32(8)
              PUT(12) = ITE(CmpNE32(t1,0x0:I32),t2,GET:I32(12))
              PUT(68) = 0x4002997:I32

    [[snip]]

        (thumb) 0x40029A0:  blx 0x4039678 (switch to ARM mode)

              ------ IMark(0x40029A0, 4, 1) ------
              t13 = 0x0:I32
              PUT(392) = t13
              t14 = 0x1:I32
              PUT(392) = t13
              t15 = Shr32(t13,0x8:I8)
              if (CmpNE32(t15,0x0:I32)) { PUT(68) = 0x40029A1:I32; 
exit-NoDecode }
              PUT(392) = t13
              if (Not1(32to1(t14))) { PUT(68) = 0x40029A5:I32; exit-Boring }
              PUT(64) = 0x40029A5:I32
              PUT(68) = 0x4039678:I32
              PUT(68) = GET:I32(68); exit-Call

GuestBytes 4002995 16  46 40 F2 6B 10 52 46 5B 46 00 95 36 F0 6A EE 00  002ADA34

VexExpansionRatio 16 208   130 :10

--28961-- VALGRIND INTERNAL ERROR: Valgrind received a signal 4 (SIGILL) - 
exiting
--28961-- si_code=1;  Faulting address: 0x0;  sp: 0x831d9d94
*****

and the earlier translation for the subroutine at 0x4039678:
***** line 61104
==== SB 693 (evchecks 3967) [tid 1] 0x4039678 __dl_syscall 
/system_O/bin/linker+0x39678

------------------------ Front end ------------------------

        (arm) 0x4039678:  mov r12, r13   // no registers saved at entry

              ------ IMark(0x4039678, 4, 0) ------
              t1 = GET:I32(60)
              t0 = t1
              t2 = t0
              PUT(56) = t2
              PUT(68) = 0x403967C:I32

        (arm) 0x403967C:  stmdb r13!, {0x00F0}

              ------ IMark(0x403967C, 4, 0) ------
              t3 = GET:I32(60)
              t4 = t3
              PUT(60) = Sub32(t3,0x10:I32)
              STle(Sub32(t4,0x4:I32)) = GET:I32(36)
              STle(Sub32(t4,0x8:I32)) = GET:I32(32)
              STle(Sub32(t4,0xC:I32)) = GET:I32(28)
              STle(Sub32(t4,0x10:I32)) = GET:I32(24)
              PUT(68) = 0x4039680:I32

   [[snip]]

        (arm) 0x4039690:  ldmia r12, {0x0078}

              ------ IMark(0x4039690, 4, 0) ------
              t17 = GET:I32(56)
              t18 = t17
              PUT(20) = LDle:I32(Add32(t18,0x0:I32))
              PUT(24) = LDle:I32(Add32(t18,0x4:I32))
              PUT(28) = LDle:I32(Add32(t18,0x8:I32))
              PUT(32) = LDle:I32(Add32(t18,0xC:I32))
              PUT(68) = 0x4039694:I32

        (arm) 0x4039694:  svc #0x00000000

              ------ IMark(0x4039694, 4, 0) ------
              PUT(68) = 0x4039698:I32
              PUT(68) = GET:I32(68); exit-Sys_syscall

        (arm) 0x4039698:  ldmia r13!, {0x00F0}

              ------ IMark(0x4039698, 4, 0) ------
              t0 = GET:I32(60)
              t1 = t0
              PUT(24) = LDle:I32(Add32(t1,0x0:I32))
              PUT(28) = LDle:I32(Add32(t1,0x4:I32))
              PUT(32) = LDle:I32(Add32(t1,0x8:I32))
              PUT(36) = LDle:I32(Add32(t1,0xC:I32))
              PUT(60) = Add32(t0,0x10:I32)
              PUT(68) = 0x403969C:I32

    [[snip]]

        (arm) 0x40396A0:  bx{ls} r14   // conditional return; is taken to 
(thumb) 0x4008B8E [not shown]

              ------ IMark(0x40396A0, 4, 0) ------
              t5 = 
armg_calculate_condition[mcx=0x9]{0x5815eb7c}(Or32(GET:I32(72),0x90:I32),GET:I32(76),GET:I32(80),GET:I32(84)):I32
              if (Not1(32to1(t5))) { PUT(68) = 0x40396A4:I32; exit-Boring }
              t6 = GET:I32(64)
              PUT(68) = t6
              PUT(68) = GET:I32(68); exit-Return

    [[snip; note change to (thumb) mode]]

        (thumb) 0x40423E6:  add sp, #16   // THIS LOOKS VERY STRANGE; What is 
going on with the stack pointer?

              ------ IMark(0x40423E6, 2, 1) ------
              t26 = GET:I32(392)
              t27 = Shr32(t26,0x8:I8)
              PUT(392) = t27
              t28 = 
armg_calculate_condition[mcx=0x9]{0x5815eb7c}(Or32(GET:I32(72),Xor32(And32(t26,0xF0:I32),0xE0:I32)),GET:I32(76),GET:I32(80),GET:I32(84)):I32
              t29 = ITE(CmpNE32(And32(t26,0xF0:I32),0x0:I32),t28,0x1:I32)
              t30 = Xor32(And32(t26,0x1:I32),0x1:I32)
              t31 = And32(t30,t29)
              PUT(60) = 
ITE(CmpNE32(t29,0x0:I32),Add32(GET:I32(60),0x10:I32),GET:I32(60))
              PUT(68) = 0x40423E9:I32


        (thumb) 0x40423E8:  ldmia r13!, {0x81F0}  // unconditional return

              ------ IMark(0x40423E8, 4, 1) ------
              t32 = 0x0:I32
              PUT(392) = t32
              t33 = 0x1:I32
              PUT(392) = t32
              t34 = Shr32(t32,0x8:I8)
              if (CmpNE32(t34,0x0:I32)) { PUT(68) = 0x40423E9:I32; 
exit-NoDecode }
              PUT(392) = t32
              if (Not1(32to1(t33))) { PUT(68) = 0x40423ED:I32; exit-Boring }
              t35 = GET:I32(60)
              t36 = t35
              PUT(24) = LDle:I32(Add32(t36,0x0:I32))
              PUT(28) = LDle:I32(Add32(t36,0x4:I32))
              PUT(32) = LDle:I32(Add32(t36,0x8:I32))
              PUT(36) = LDle:I32(Add32(t36,0xC:I32))
              PUT(40) = LDle:I32(Add32(t36,0x10:I32))
              PUT(68) = LDle:I32(Add32(t36,0x14:I32))
              PUT(60) = Add32(t35,0x18:I32)
              PUT(68) = GET:I32(68)
              PUT(68) = GET:I32(68); exit-Return
*****

I'm very unsure of what is happening.

--



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to