Skip to content
  • Tamar Christina's avatar
    Add ability to produce crash dumps on Windows · ec9ac20d
    Tamar Christina authored and Ben Gamari's avatar Ben Gamari committed
    It's often hard to debug things like segfaults on Windows,
    mostly because gdb isn't always of use and users don't know
    how to effectively use it.
    
    This patch provides a way to create a crash drump by passing
    
    `+RTS --generate-crash-dumps` as an option. If any unhandled
    exception is triggered a dump is made that contains enough
    information to be able to diagnose things successfully.
    
    Currently the created dumps are a bit big because I include
    all registers, code and threads information.
    
    This looks like
    
    ```
    $ testsuite/tests/rts/derefnull.run/derefnull.exe +RTS
    --generate-crash-dumps
    
    Access violation in generated code when reading 0000000000000000
    Crash dump created. Dump written to:
            E:\msys64\tmp\ghc-20170901-220250-11216-16628.dmp
    ```
    
    Test Plan: ./validate
    
    Reviewers: austin, hvr, bgamari, erikd, simonmar
    
    Reviewed By: bgamari, simonmar
    
    Subscribers: rwbarton, thomie
    
    Differential Revision: https://phabricator.haskell.org/D3912
    ec9ac20d