X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=docs%2Fusers_guide%2Fdebugging.xml;h=358be1023567d8e1a895a7f9b0e1c67bed39220a;hb=a0f6d307b097bd788e181434a4d9b7fdd56a6c6b;hp=a325389d4681c5db89ae5ae42ddb6b276fbc156f;hpb=0065d5ab628975892cea1ec7303f968c3338cbe1;p=ghc-hetmet.git
diff --git a/docs/users_guide/debugging.xml b/docs/users_guide/debugging.xml
index a325389..358be10 100644
--- a/docs/users_guide/debugging.xml
+++ b/docs/users_guide/debugging.xml
@@ -60,6 +60,17 @@
+ :
+
+
+
+ Dump Template Haskell expressions that we splice in,
+ and what Haskell code the expression evaluates to.
+
+
+
+
+
:
@@ -109,38 +120,51 @@
- dumps all rewrite rules (including those generated
- by the specialisation pass)
+ dumps all rewrite rules specified in this module;
+ see .
+
- :
-
+ :
+
- simplifier output (Core-to-Core passes)
+ dumps the names of all rules that fired in this module
- :
-
+ :
+
- inlining info from the simplifier
+ dumps detailed information about all rules that fired in
+ this module
+
+
+
+
+
+
+ :
+
+
+
+ simplifier output (Core-to-Core passes)
- :
-
+ :
+
- UsageSP inference pre-inf and output
+ inlining info from the simplifier
@@ -176,8 +200,8 @@
- :
-
+ :
+ worker/wrapper split output
@@ -196,11 +220,11 @@
- :
-
+ :
+
- output of “saturate” pass
+ output of core preparation pass
@@ -216,16 +240,6 @@
- :
-
-
-
- unflattened Abstract C
-
-
-
-
-
:
@@ -236,21 +250,21 @@
- :
-
+ :
+
- same as what goes to the C compiler
+ Print the C-- code out.
- :
-
+ :
+
- native-code generator intermediate form
+ Dump the results of C-- to C-- optimising passes.
@@ -289,6 +303,87 @@
+ :
+
+
+
+ Show the output of each run of the simplifier. Used when even
+ doesn't cut it.
+
+
+
+
+
+ :
+
+
+
+ Show the output of each iteration
+ of the simplifier (each run of the simplifier has a maximum
+ number of iterations, normally 4). This outputs even more information
+ than .
+
+
+
+
+
+
+
+
+
+ Dump statistics about how many of each kind of
+ transformation too place. If you add
+ you get more detailed
+ information.
+
+
+
+
+
+
+
+
+
+ Make the interface loader be *real* chatty about what it is
+ upto.
+
+
+
+
+
+
+
+
+
+ Make the type checker be *real* chatty about what it is
+ upto.
+
+
+
+
+
+
+
+
+
+ Make the renamer be *real* chatty about what it is
+ upto.
+
+
+
+
+
+
+
+
+
+ Print out summary of what kind of information the renamer
+ had to bring in.
+
+
+
+
+
@@ -302,7 +397,7 @@
of output!) So: when we're really desperate:
-% ghc -noC -O -ddump-simpl -dverbose-simpl -dcore-lint Foo.hs
+% ghc -noC -O -ddump-simpl -dverbose-core2core -dcore-lint Foo.hs
@@ -310,14 +405,22 @@
- :
-
+
+
- Show the output of each iteration
- of the simplifier (each run of the simplifier has a maximum
- number of iterations, normally 4). Used when even
- doesn't cut it.
+ Print out each pass name as it happens.
+
+
+
+
+
+
+
+
+
+ Show statistics for the usage of fast strings by the
+ compiler.
@@ -343,61 +446,65 @@
-
-
+
+
- In error messages, expressions are printed to a
- certain “depth”, with subexpressions beyond the
- depth replaced by ellipses. This flag sets the
- depth.
+ Suppress the printing of uniques in debugging output. This may make
+ the printout ambiguous (e.g. unclear where an occurrence of 'x' is bound), but
+ it makes the output of two compiler runs have many fewer gratuitous differences,
+ so you can realistically apply diff. Once diff
+ has shown you where to look, you can try again without
-
-
+
+
- Dump statistics about how many of each kind of
- transformation too place. If you add
- you get more detailed
- information.
+ Suppress the printing of coercions in Core dumps to make them
+shorter.
-
-
+
+
- Make the renamer be *real* chatty about what it is
- upto.
+ Suppress the printing of module qualification prefixes in Core dumps to make them easier to read.
-
-
+
+
- Print out summary of what kind of information the renamer
- had to bring in.
+ In error messages, expressions are printed to a
+ certain “depth”, with subexpressions beyond the
+ depth replaced by ellipses. This flag sets the
+ depth. Its default value is 5.
-
-
-
+
+
+
-
- Have the renamer report what imports does not
- contribute.
-
+
+ Suppress any unsolicited debugging output. When GHC
+ has been built with the DEBUG option it
+ occasionally emits debug output of interest to developers.
+ The extra output can confuse the testing framework and
+ cause bogus test failures, so this flag is provided to
+ turn it off.
+
@@ -433,19 +540,14 @@
- :
-
+ :
+
- Turn on checks around UsageSP inference
- (). This verifies various simple
- properties of the results of the inference, and also warns
- if any identifier with a used-once annotation before the
- inference has a used-many annotation afterwards; this could
- indicate a non-worksafe transformation is being
- applied.
+ Ditto for C-- level.
+
@@ -572,28 +674,15 @@ Main.skip2{-r1L6-} =
of platform-specific code that needs to be written in order to get
unregisterised compilation going is usually fairly small.
-
-
-
- :
-
-
-
- Compile via vanilla ANSI C only, turning off
- platform-specific optimisations. NOTE: in order to use
- , you need to have a set of libraries
- (including the RTS) built for unregisterised compilation.
- This amounts to building GHC with way "u" enabled.
-
-
-
+ Unregisterised compilation cannot be selected at
+ compile-time; you have to build GHC with the appropriate options
+ set. Consult the GHC Building Guide for details.