缺少静态链接二进制文件中的调试符号

car*_*mer 5 haskell gdb ghc cabal haskell-stack

我正在使用堆栈构建静态链接二进制文件,我尝试向其添加调试符号(以下:https://downloads.haskell.org/~ghc/master/users-guide/debug-info.html).然而GDB报道:no debugging symbols found.

我错过了什么?

我已经加入到ghc-options了在.cabal文件:-g -rtsopts和到ld-options:-static.我使用以下命令构建堆栈:

stack install \
    --install-ghc \
    --split-objs \
    --ghc-options="-fPIC -fllvm -pgmlo opt -pgmlc llc"
Run Code Online (Sandbox Code Playgroud)

GDB调用如下: gdb --args nodebug-exe +RTS -V0

GHC 8.2.1

整个源代码在这里:https://github.com/carbolymer/haskell-missing-debug-symbols

Zpa*_*ree 6

--no-strip 防止在堆栈构建中删除调试信息.

文档:

stack现在支持使用DWARF信息进行调试和分析,使用--no-strip, - no-library-stripping和--no-executable-stripping标志来禁用从编译库和可执行文件中删除此类信息的默认行为.