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

GHC ghc-devs at haskell.org
Sat Sep 5 16:59:02 UTC 2015


#10375: arm: ghci hits an illegal instruction
-------------------------------------+---------------------------------
        Reporter:  erikd             |                   Owner:
            Type:  bug               |                  Status:  new
        Priority:  high              |               Milestone:  7.10.3
       Component:  GHCi              |                 Version:  7.10.1
      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):

 If I configure the build with `--enable-unregistered`, built it and then
 re-ran my tests.

 The program still crashes with SIGILL, but I now get a sensible backtrace:

 {{{
 GHCi, version 7.11.20150905: http://www.haskell.org/ghc/  :? for help

 Program received signal SIGILL, Illegal instruction.
 0x03ff9dbc in stg_ap_v_fast ()
 (gdb) bt
 #0  0x03ff9dbc in stg_ap_v_fast ()
 #1  0x03fc6ce6 in StgRun (f=0x3ff9db4 <stg_ap_v_fast>, basereg=0x49d2090
 <MainCapability+16>) at
     rts/StgCRun.c:81
 #2  0x03fca52a in schedule (initialCapability=0x49d2080 <MainCapability>,
 task=0x49e62c0) at
     rts/Schedule.c:524
 #3  0x03fcc5e6 in scheduleWaitThread (tso=0xb6c07000, ret=0x0,
 pcap=0xbeffeb74) at
     rts/Schedule.c:2429
 #4  0x03fbc7e4 in rts_evalLazyIO (cap=0xbeffeb74, p=0x402d470
 <ZCMain_main_closure>, ret=0x0) at
     rts/RtsAPI.c:500
 #5  0x03fce2be in hs_main (argc=3, argv=0xbeffed64, main_closure=0x402d470
 <ZCMain_main_closure>,
     rts_config=...) at rts/RtsMain.c:64
 #6  0x00141508 in main ()
 }}}

 and if I disassemble at the SIGILL I get:

 {{{
 (gdb) disassemble
 Dump of assembler code for function stg_ap_v_fast:
    0x03ff9db4 <+0>:     push    {r7, lr}
    0x03ff9db6 <+2>:     sub     sp, #32
    0x03ff9db8 <+4>:     add     r7, sp, #0
    0x03ff9dba <+6>:     ldr     r3, [pc, #508]  ; (0x3ff9fb8
 <stg_ap_v_fast+516>)
 => 0x03ff9dbc <+8>:     ldr     r3, [r3, #0]
    0x03ff9dbe <+10>:    and.w   r3, r3, #3
 }}}

 Now to figure out why that load instruction is illegal.

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


More information about the ghc-tickets mailing list