[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