
Max and Tim, Thank you for your replies, continuation below. On Wed, 2011-04-13 at 08:27 +0100, Max Bolingbroke wrote:
On 13 April 2011 07:59, Svante Signell
wrote: As I don't know anything about Haskell, can I make a stupid question: Is there any method to create debug symbols for a Haskell program, and is it possible to debug with gdb?
You cannot create debug symbols. Things that are possible:
1. You may use the -debug flag to GHC to link with the debug RTS, which has full debugging information for GDB. Note that this only lets you debug the *RTS*, not any of the code you wrote
2. Use GDB to debug your Haskell code without giving it any symbols or understanding of the Haskell calling conventions. This is very difficult. Information on this is on the GHC wiki: http://hackage.haskell.org/trac/ghc/wiki/Debugging/CompiledCode?redirectedfr...
3. Use the GHCi debugger, which does actually work surprisingly well: http://www.haskell.org/ghc/docs/7.0.3/html/users_guide/ghci-debugger.html
The problem is that I'm trying to bootstrap ghc to 6.10.1 using 6.8.2 under Debian GNU/Hurd. Yes, I know these packages are old but so far we only have a working 6.8.2 version and 6.10.1 is the latest version not requiring 6.10 to bootstrap. Cross-compiling is another, not yet tested, alternative. The problem is that the configure step hangs when compiling the random library, and I've tried a lot of settings, the hang is at the same place. A stripped down call is: cd libraries/random: ../cabal-bin /usr/bin/ghc6 ../bootstrapping.conf configure --verbose=3 --with-compiler =../../ghc/stage1-inplace/ghc --with-hc-pkg=../../utils/ghc-pkg/install-inplace/bin/ghc-pkg Configuring random-1.0.0.1... Creating dist (and its parents) ("../../ghc/stage1-inplace/ghc",["--numeric-version"]) ../../ghc/stage1-inplace/ghc is version 6.10.1 ("../../utils/ghc-pkg/install-inplace/bin/ghc-pkg",["--version"]) ../../utils/ghc-pkg/install-inplace/bin/ghc-pkg is version 6.10.1 ("../../ghc/stage1-inplace/ghc",["--supported-languages"]) Reading installed packages... ("../../utils/ghc-pkg/install-inplace/bin/ghc-pkg",["dump","--global"]) ^C <- hang here! The last part of the gdb backtrace shows: #5 0x011d4ce0 in __libc_read (fd=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece. ) at ../sysdeps/mach/hurd/read.c:27 #6 0x084919c8 in s9qJ_ret () #7 0x0861f842 in StgRun () #8 0x087c44e0 in ?? () I assume the calling program is cabal-bin, but no debug symbols are available. (I have debug versions of libc/gnumach/hurd installed). Setting a breakpoint in the calling program does not seem to be possible. Any hints?