diff options
author | Ryan Scott <ryan.gl.scott@gmail.com> | 2018-08-21 16:04:45 -0400 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2018-08-21 18:56:11 -0400 |
commit | 2bacf6f8842d8e1288917e358ed41e4c61b7948e (patch) | |
tree | 22ac839c9446fb8d9d52c0ccce5011647b606159 | |
parent | c971e1193fa44bb507d1806d5bb61768670dc912 (diff) | |
download | haskell-2bacf6f8842d8e1288917e358ed41e4c61b7948e.tar.gz |
rts/RetainerProfile: Dump closure type if pop() fails
While investigating #15529, I noticed that the `barf`ed
error message in `pop()` doesn't print out the closure type that
causes it to crash. Let's do so.
Reviewers: bgamari, erikd, simonmar
Reviewed By: bgamari
Subscribers: rwbarton, carter
GHC Trac Issues: #15529
Differential Revision: https://phabricator.haskell.org/D5072
-rw-r--r-- | rts/RetainerProfile.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/rts/RetainerProfile.c b/rts/RetainerProfile.c index 6a0af21823..9458b1327e 100644 --- a/rts/RetainerProfile.c +++ b/rts/RetainerProfile.c @@ -897,7 +897,7 @@ pop( StgClosure **c, StgClosure **cp, retainer *r ) case IND: case INVALID_OBJECT: default: - barf("Invalid object *c in pop()"); + barf("Invalid object *c in pop(): %d", get_itbl(se->c)->type); return; } } while (true); |