How do I find out which info table a continuation belongs to?
marlowsd at gmail.com
Sun Feb 10 15:59:54 UTC 2019
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 <omeragacan at gmail.com>
> I'm currently working on a bug and one of the things I often want to know
> what's on the stack. The problem is I can't see labels of continuations so
> information is really useless. Example:
> >>> call printStack(((StgTSO*)0x42000e0198)->stackobj)
> 0x42000c8788: RET_SMALL (0x512d70)
> 0x42000c8790: RET_SMALL (0x40edf0)
> stk (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
> this for other kinds of closures:
> >>> print ((StgClosure*)...)->header.info
> $15 = (const StgInfoTable *) 0x404dc0 <Main_nats_info>
> 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?
> ghc-devs mailing list
> ghc-devs at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the ghc-devs