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

GHC ghc-devs at haskell.org
Tue Sep 22 05:02:18 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):

 Debugging with GDB was too un-reliable, even with Virtual Address
 randomization disabled in the Linux kernel and master tick timer disabled
 (`+RTS -V0 -RTS`).

 However, running with `+RTS -Da -RTS` I noticed that one of the last
 things the program did before crashing was to print out a `BCO` (Bycode
 compiled object). Unfortunately, the output with `-Ds` was simply way too
 verbose.

 Adding some custom debug which was only activated after the BCO was loaded
 showed that the crash (sometimes SIGILL, sometimes SIGSEGV) was happening
 some time after the call to `StgRun` in `rts/Schedule.c`.

 Since, the crash after calling `StgRun` happens immediately after loading
 the BCO, my suspicion is that the `StgRun` call is actually calling the
 recently loaded BCO.

 My custom debug shows something along the lines of (eliding irrelevant
 stuff):

 {{{
 StgRun call 128
 StgRun call 129
 StgRun call 130

 BCO
          0:  PUSH_ALTS  0xb39c2d08
          2:  PUSH_L   2
          4:  ENTER
 INSTRS:
      6   0   2   2  46
 PTRS:
    0xb39c2d08

 SthRun call 131
 Segmentation fault
 }}}

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


More information about the ghc-tickets mailing list