diff options
author | Simon Marlow <marlowsd@gmail.com> | 2015-11-03 14:06:09 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2015-11-13 16:06:42 +0000 |
commit | 8988be8561ce0857f3befd6ab3b6c29060685c0a (patch) | |
tree | 88848de1dd8bc6664fd0de65f9b04415a4b4cc67 /testsuite/tests/profiling | |
parent | 8868ff3eb742977c5de2609f7d748f4ff8882d6d (diff) | |
download | haskell-8988be8561ce0857f3befd6ab3b6c29060685c0a.tar.gz |
Make 'error' include the CCS call stack when profiled
Summary:
The idea here is that this gives a more detailed stack trace in two
cases:
1. With `-prof` and `-fprof-auto`
2. In GHCi (see #11047)
Example, with an error inserted in nofib/shootout/binary-trees:
```
$ ./Main 3
Main: z
CallStack (from ImplicitParams):
error, called at Main.hs:67:29 in main:Main
CallStack (from -prof):
Main.check' (Main.hs:(67,1)-(68,82))
Main.check (Main.hs:63:1-21)
Main.stretch (Main.hs:32:35-57)
Main.main.c (Main.hs:32:9-57)
Main.main (Main.hs:(27,1)-(43,42))
Main.CAF (<entire-module>)
```
This doesn't quite obsolete +RTS -xc, which also attempts to display
more information in the case when the error is in a CAF, but I'm
exploring other solutions to that.
Includes submodule updates.
Test Plan: validate
Reviewers: simonpj, ezyang, gridaphobe, bgamari, hvr, austin
Reviewed By: bgamari
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D1426
Diffstat (limited to 'testsuite/tests/profiling')
-rw-r--r-- | testsuite/tests/profiling/should_run/ioprof.stderr | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/testsuite/tests/profiling/should_run/ioprof.stderr b/testsuite/tests/profiling/should_run/ioprof.stderr index 3910245347..db9c36bbe3 100644 --- a/testsuite/tests/profiling/should_run/ioprof.stderr +++ b/testsuite/tests/profiling/should_run/ioprof.stderr @@ -1,3 +1,14 @@ ioprof: a -CallStack: +CallStack (from ImplicitParams): error, called at ioprof.hs:23:22 in main:Main +CallStack (from -prof): + Main.errorM.\ (ioprof.hs:23:22-28) + Main.errorM (ioprof.hs:23:1-28) + Main.foo (ioprof.hs:34:1-16) + Main.>>=.\ (ioprof.hs:(11,27)-(12,50)) + Main.>>= (ioprof.hs:(11,3)-(12,50)) + Main.<*> (ioprof.hs:20:5-14) + Main.bar (ioprof.hs:31:1-20) + Main.runM (ioprof.hs:26:1-37) + Main.main (ioprof.hs:28:1-43) + Main.CAF (<entire-module>) |