[GHC] #10375: arm: ghci hits an illegal instruction

GHC ghc-devs at haskell.org
Thu Sep 17 09:35:24 UTC 2015


#10375: arm: ghci hits an illegal instruction
-------------------------------------+-------------------------------------
        Reporter:  erikd             |                   Owner:
            Type:  bug               |                  Status:  new
        Priority:  high              |               Milestone:  7.10.3
       Component:  Runtime System    |                 Version:  7.10.1
  (Linker)                           |
      Resolution:                    |                Keywords:
Operating System:  Unknown/Multiple  |            Architecture:  arm
 Type of failure:  GHCi crash        |               Test Case:
      Blocked By:                    |                Blocking:
 Related Tickets:                    |  Differential Revisions:
-------------------------------------+-------------------------------------

Comment (by erikd):

 When compiler in Registerised mode, `inplace/bin/ghc-stage2 --interactive`
 basically works. I can import modules, I can print things etc. Everything
 works fine until:

 {{{
 Prelude> data X = X | Y deriving Eq
 Prelude> X == X

 Program received signal SIGSEGV, Segmentation fault.
 [Switching to Thread 0xb59ff460 (LWP 29599)]
 0xb6ff0024 in ?? ()

 (gdb) bt
 #0  0xb6ff0024 in ?? ()
 #1  0x70000000 in ?? ()
 Backtrace stopped: previous frame identical to this frame (corrupt stack?)

 (gdb) disass 0xb6ff0020,+0x30
 Dump of assembler code from 0xb6ff0020 to 0xb6ff0050:
    0xb6ff0020:  ldrbvs  r6, [r4, #-3689]!       ; 0xe69
 => 0xb6ff0024:  strbtvc r6, [r3], #-370 ; 0x172
    0xb6ff0028:  bcc     0xb894d9d4
    0xb6ff002c:  stmdbvs r3!, {r0, r1, r2, r6, r11, sp, lr}^
    0xb6ff0030:  subseq  r2, r8, r1, lsr lr
    0xb6ff0034:  andeq   r0, r0, r3, lsr r0
    0xb6ff0038:                  ; <UNDEFINED> instruction: 0xb6ff0038
    0xb6ff003c:  andeq   r0, r0, r8
    0xb6ff0040:  andeq   r0, r1, r0
    0xb6ff0044:  andeq   r0, r1, r1
    0xb6ff0048:  stmdaeq r7, {r0, r3, r6}^
    0xb6ff004c:  strdeq  r12, [r6, #208]!        ; 0xd0
 End of assembler dump.

 (gdb) info registers
 r0             0xb6ff0018       3070165016
 r1             0x28     40
 r2             0x1      1
 r3             0x70000000       1879048192
 r4             0x2350b50        37030736
 r5             0xb38c4a0c       3012315660
 r6             0xb5187d24       3038280996
 r7             0xb38c4b30       3012315952
 r8             0xb2ad2c38       2997693496
 r9             0x7fffffff       2147483647
 r10            0x1e6cef4        31903476
 r11            0xb38c4750       3012314960
 r12            0x235036c        37028716
 sp             0xb59fcd70       0xb59fcd70
 lr             0x70000000       1879048192
 pc             0xb6ff0024       0xb6ff0024
 cpsr           0x400f0010       1074724880
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10375#comment:53>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list