Interrupted program cannot produce biographical heap profile
If I interrupt program running with "+RTS -p -hb" option, the program aborts with message below and I could only get empty heap profile.
Minimal case is below:
module Main where
main :: IO ()
main = print $ sum [1..10000000000]
I compiled this code with "-prof -rtsopts" options, ran the program and then interrupt after several seconds.
$ ghc http-biographic-profile.hs -prof -rtsopts
[1 of 1] Compiling Main ( http-biographic-profile.hs, http-biographic-profile.o )
Linking biographic-profile ...
$ ./http-biographic-profile +RTS -hb -p
^Chttp-biographic-profile: internal error: Invalid object in processHeapClosureForDead(): 58
(GHC version 7.0.4 for x86_64_apple_darwin)
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
zsh: abort ./http-biographic-profile +RTS -hb -p
Empty heap profile generated is below:
JOB "biographic-profile +RTS -hb -p"
DATE "Thu May 17 17:12 2012"
SAMPLE_UNIT "seconds"
VALUE_UNIT "bytes"
BEGIN_SAMPLE 0.00
END_SAMPLE 0.00
I reproduce this behaviour in environments below:
- GHC-7.0.4 (x86_64_apple_darwin, OS X 10.6.8, distributed with haskell-platform 2011.3.0.0)
- GHC-7.4.1 (x86_64_apple_darwin, OS X 10.6.8, installed from tarball, sandboxed with virthualenv)
I think "-hb" show work even when program interrupted, because "-hy", "-hd", "-hr" and so on works in such a situation. Is this a intended behaviour?
Trac metadata
Trac field | Value |
---|---|
Version | 7.4.1 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Profiling |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |