X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=docs%2Fusers_guide%2Fdebugging.xml;h=fe9853774387afd55dd2c4974c9b0ac801dc8184;hb=1bf40a4b38180b8b1c1bdaf4919bc327d5b27abe;hp=2a8876718a34c305326329165cf01409ac8df735;hpb=ba5729e5b8d80b3fcc8a477cb36d6a03800ac0dd;p=ghc-hetmet.git
diff --git a/docs/users_guide/debugging.xml b/docs/users_guide/debugging.xml
index 2a88767..fe98537 100644
--- a/docs/users_guide/debugging.xml
+++ b/docs/users_guide/debugging.xml
@@ -8,10 +8,10 @@
Dumping out compiler intermediate structures
-
+
dumping GHC intermediatesintermediate passes, output
-
+
@@ -24,8 +24,9 @@
a short form…). You can get all of these at once
(lots of output) by using
, or most of them with
- . Some of the most useful ones
- are:
+ . You can prevent them from clogging up
+ your standard output by passing .
+ Some of the most useful ones are:
@@ -60,16 +61,6 @@
- :
-
-
-
- typechecker output
-
-
-
-
-
:
@@ -130,8 +121,42 @@
- dumps all rewrite rules (including those generated
- by the specialisation pass)
+ dumps all rewrite rules specified in this module;
+ see .
+
+
+
+
+
+
+ :
+
+
+
+ dumps the names of all rules that fired in this module
+
+
+
+
+
+ :
+
+
+
+ dumps detailed information about all rules that fired in
+ this module
+
+
+
+
+
+
+ :
+
+
+
+ dumps the output of the vectoriser.
+
@@ -187,8 +212,8 @@
- :
-
+ :
+ worker/wrapper split output
@@ -287,7 +312,18 @@
-
+
+
+
+ :
+
+
+
+ Show the output of each run of the simplifier. Used when even
+ doesn't cut it.
+
+
+
:
@@ -296,8 +332,8 @@
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.
+ number of iterations, normally 4). This outputs even more information
+ than .
@@ -321,19 +357,30 @@
Make the interface loader be *real* chatty about what it is
- upto.
+ up to.
-
+
-
- Make the type checker be *real* chatty about what it is
- upto.
-
+
+ Make the type checker be *real* chatty about what it is
+ up to.
+
+
+
+
+
+
+
+
+
+ Make the vectoriser be *real* chatty about what it is
+ up to.
+
@@ -343,7 +390,7 @@
Make the renamer be *real* chatty about what it is
- upto.
+ up to.
@@ -373,12 +420,12 @@
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
-
+
@@ -391,6 +438,17 @@
+
+
+
+
+ Print a one-line summary of the size of the Core program
+ at the end of the optimisation pipeline.
+
+
+
+
+
@@ -419,7 +477,15 @@
style.
+
+
+
+
+ Formatting dumps
+ formatting dumps
+
+
@@ -429,18 +495,135 @@
In error messages, expressions are printed to a
certain “depth”, with subexpressions beyond the
depth replaced by ellipses. This flag sets the
- depth.
+ depth. Its default value is 5.
+
+
+
+
+
+
+
+
+
+ Set the width of debugging output. Use this if your code is wrapping too much.
+ For example: .
-
-
+
+
- Have the renamer report what imports does not
- contribute.
+ Print single alternative case expressions as though they were strict
+ let expressions. This is helpful when your code does a lot of unboxing.
+
+
+
+
+
+
+
+
+
+ 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.
+
+
+
+
+
+
+
+ Suppressing unwanted information
+
+ suppression
+
+ Core dumps contain a large amount of information. Depending on what you are doing, not all of it will be useful.
+ Use these flags to suppress the parts that you are not interested in.
+
+
+
+
+
+
+
+
+ Suppress everything that can be suppressed, except for unique ids as this often
+ makes the printout ambiguous. If you just want to see the overall structure of
+ the code, then start here.
+
+
+
+
+
+
+
+
+
+ Suppress the printing of uniques. 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
+
+
+
+
+
+
+
+
+
+ Suppress extended information about identifiers where they are bound. This includes
+ strictness information and inliner templates. Using this flag can cut the size
+ of the core dump in half, due to the lack of inliner templates
+
+
+
+
+
+
+
+
+
+ Suppress the printing of module qualification prefixes.
+ This is the Data.List in Data.List.length.
+
+
+
+
+
+
+
+
+
+ Suppress the printing of type signatures.
+
+
+
+
+
+
+
+
+
+ Suppress the printing of type applications.
+
+
+
+
+
+
+
+
+
+ Suppress the printing of type coercions.
@@ -611,28 +794,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.