
I'm already using -g3. Here's my build.mk:
BuildFlavour = quick
ifneq "$(BuildFlavour)" ""
include mk/flavours/$(BuildFlavour).mk
endif
GhcRtsHcOpts += -O0 -g3
SRC_HC_OPTS += -g3
GhcStage1HcOpts += -g3
GhcStage2HcOpts += -g3
GhcLibHcOpts += -g3
STRIP_CMD = :
Ömer
Simon Marlow
I believe this is due to https://phabricator.haskell.org/D4722
(cc Sergei Azovskov)
I'm a bit surprised that gdb isn't showing anything though, it should know that the address corresponds to a temporary symbol like `.L1234`. Perhaps you need to compile with -g to make this work, I'm not sure.
On Sun, 10 Feb 2019 at 07:50, Ömer Sinan Ağacan
wrote: I'm currently working on a bug and one of the things I often want to know is what's on the stack. The problem is I can't see labels of continuations so the information is really useless. Example:
>>> call printStack(((StgTSO*)0x42000e0198)->stackobj) 0x42000c8788: RET_SMALL (0x512d70) 0x42000c8790: RET_SMALL (0x40edf0) stk[5] (0x42000c8798) = 0x7b3938 0x42000c87a0: CATCH_FRAME(0x735a98,0x7d3ff2) 0x42000c87b8: STOP_FRAME(0x7311b8)
(I modified the printer to print stack locations when printing stacks)
Here I need to know which info table the RET_SMALLs return to. Normally I do this for other kinds of closures:
>>> print ((StgClosure*)...)->header.info $15 = (const StgInfoTable *) 0x404dc0
But for continuations that doesn't work:
>>> print ((StgClosure*)0x42000c8788)->header.info $11 = (const StgInfoTable *) 0x512d80 >>> info symbol 0x512d80 No symbol matches 0x512d80.
Anyone know how to make this work? Can I maybe mark the continuations label in the generated assembly somehow to make those labels available in gdb?
Thanks
Ömer _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs