Go to the first, previous, next, last section, table of contents.

Dumping out compiler intermediate structures

`-noC':
Don't bother generating C output or an interface file. Usually used in conjunction with one or more of the `-ddump-*' options; for example: `ghc -noC -ddump-simpl Foo.hs'
`-hi':
Do generate an interface file. This would normally be used in conjunction with `-noC', which turns off interface generation; thus: `-noC -hi'.
`-ddump-parser':
This debugging option shows the exact prefix-form Haskell that is fed into the Haskell compiler proper.
`-ddump-<pass>':
Make a debugging dump after pass `<pass>' (may be common enough to need a short form...). Some of the most useful ones are:
`-ddump-rif2hs'      reader output (earliest stuff in the compiler)    
`-ddump-rn4'         renamer output                                    
`-ddump-tc'          typechecker output                                
`-ddump-deriv'       derived instances                                 
`-ddump-ds'          desugarer output                                  
`-ddump-simpl'       simplifer output (Core-to-Core passes)            
                              (and don't forget `-O', too!)            
`-ddump-stranal'     strictness analyser output                        
                              (only works in conjunction with -ddump-simpl)     
`-ddump-occur-anal'  `occurrence analysis' output                      
                              (only works in conjunction with -ddump-simpl)     
`-ddump-spec'        dump specialisation info                          
`-ddump-stg'         output of STG-to-STG passes                       
`-ddump-absC'        unflattened Abstract C                     
`-ddump-flatC'       flattened Abstract C                       
`-ddump-realC'       same as what goes to the C compiler               
`-ddump-asm'         assembly language from the native-code generator  
`-dverbose-simpl' and `-dverbose-stg':
Show the output of the intermediate Core-to-Core and STG-to-STG passes, respectively. (Lots of output!) So: when we're really desperate:
% ghc -noC -O -ddump-simpl -dverbose-simpl -dcore-lint Foo.hs
`-dppr-{user,debug,all}':
Debugging output is in one of several "styles." Take the printing of types, for example. In the "user" style, the compiler's internal ideas about types are presented in Haskell source-level syntax, insofar as possible. In the "debug" style (which is the default for debugging output), the types are printed in the most-often-desired form, with explicit foralls, etc. In the "show all" style, very verbose information about the types (e.g., the Uniques on the individual type variables) is displayed.
`-ddump-raw-asm':
Dump out the assembly-language stuff, before the "mangler" gets it.
`-dgc-debug':
Enables some debugging code related to the garbage-collector.


Go to the first, previous, next, last section, table of contents.