Restore unwind information generation
authorPeter Wortmann <scpmw@leeds.ac.uk>
Fri, 3 Apr 2015 05:23:56 +0000 (00:23 -0500)
committerAustin Seipp <austin@well-typed.com>
Fri, 3 Apr 2015 05:32:57 +0000 (00:32 -0500)
While we want to reduce the amount of information generated into
debug_info, it really doesn't make sense to remove block information
for unwinding.

This is a simple oversight introduced in 4ab57024, which severly
reduces the usefulness of generated unwind data. Thanks to bitonic
for spotting this!

Reviewed By: austin

Differential Revision: https://phabricator.haskell.org/D792

GHC Trac Issues: #10236

compiler/nativeGen/Dwarf.hs

index d7c2f61..ff86fd8 100644 (file)
@@ -35,11 +35,11 @@ dwarfGen df modLoc us blocks = do
   -- Convert debug data structures to DWARF info records
   -- We strip out block information, as it is not currently useful for
   -- anything. In future we might want to only do this for -g1.
-  let procs = map stripBlocks $ debugSplitProcs blocks
+  let procs = debugSplitProcs blocks
       stripBlocks dbg = dbg { dblBlocks = [] }
   compPath <- getCurrentDirectory
   let dwarfUnit = DwarfCompileUnit
-        { dwChildren = map (procToDwarf df) procs
+        { dwChildren = map (procToDwarf df) (map stripBlocks procs)
         , dwName = fromMaybe "" (ml_hs_file modLoc)
         , dwCompDir = addTrailingPathSeparator compPath
         , dwProducer = cProjectName ++ " " ++ cProjectVersion