Re: Making GDB recognize the Haskell DWARF source language ID

Joel Brobecker <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
> https://ghc.haskell.org/trac/ghc/ticket/3693#comment:44
> 
> Here's a (short) example session. There are actually two problems here:
> 
>   #2  0x00000000004047a0 in Main_zdwfibzuerr_info () at stack-trace.hs:7

Off the top of my head, you'll need to add a demangler as well.

> Wile we're at it, here's another issue we are struggling with:
> 
>   #1  0x0000000000694330 in ?? () at rts/Updates.cmm:57
> 
> What happens here is that 694330 gets derived correctly as the address
> to return to, but GDB actually seems to attempt to look up 69432f (= the
> address right in front) for display name and line number information.
> That might make sense for most compiled languages, but for GHC code, the
> space in front of return code pointers is an info table (= data). Hence
> GDB gets moderately confused when it can't find any information on it.
> 
> So far we essentially hack around this by applying a suitable "offset"
> to line data as well as unwind information. That's why we have a source
> code pointer, and the stack trace doesn't simply stop at that point. But
> that's a rather crude solution, so any ideas would be appreciated.

I'm not really sure in this case. The model seems odd - are you
returning outside of the function's code / block range, or do you
have data in the middle of your function code? Perhaps a language
hook to provide flexibility in the offset...

-- 
Joel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.