[GHC] #8834: 64-bit windows cabal.exe segfaults in GC

GHC ghc-devs at haskell.org
Mon Mar 31 08:20:43 UTC 2014


#8834: 64-bit windows cabal.exe segfaults in GC
----------------------------------+----------------------------------
        Reporter:  awson          |            Owner:
            Type:  bug            |           Status:  new
        Priority:  highest        |        Milestone:  7.8.1
       Component:  Compiler       |          Version:  7.8.1-rc2
      Resolution:                 |         Keywords:
Operating System:  Windows        |     Architecture:  x86_64 (amd64)
 Type of failure:  Runtime crash  |       Difficulty:  Unknown
       Test Case:                 |       Blocked By:
        Blocking:                 |  Related Tickets:
----------------------------------+----------------------------------

Comment (by simonmar):

 {{{
    0x02137024 <+0>:     sub    $0x3510,%esp
    0x0213702a <+6>:     mov    0x8(%ebp),%eax
    0x0213702d <+9>:     mov    0x4(%ebp),%ecx
    0x02137030 <+12>:    mov    %esi,%edx
 => 0x02137032 <+14>:    mov    %eax,0x184(%esp)
 }}}

 Oh wow, this function needs a *lot* of spill space on the C stack.  I bet
 the problem is that we're bumping `%esp` by more than one page, and
 Windows doesn't like that, it expect the stack to grow by one page at a
 time.  So the fix would be to write to the intervening pages one at a
 time.  This is another bug in the NCG.

 I'm also interested in why this function needs quite so much extra stack.

 (also, shouldn't we be discussing this on #8870?  The bug in this ticket
 is fixed, I think).

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


More information about the ghc-tickets mailing list