2017-11-17 213 views
5

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

我缺少什么?

我已经加入到ghc-options.cabal file-g -rtsopts并向ld-options-static

stack install \ 
    --install-ghc \ 
    --split-objs \ 
    --ghc-options="-fPIC -fllvm -pgmlo opt -pgmlc llc" 

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

GHC 8.2.1

所有源代码是在这里:我使用堆栈使用下面的命令建立https://github.com/carbolymer/haskell-missing-debug-symbols

+1

也许加上--no-strip? '--no-strip:在库,可执行文件等中为所有表达式禁用DWARF调试符号剥离# – Zpalmtree

+0

@Zpalmtree,没错。我应该看看'stack install --help' ...你可以添加它作为答案。 – carbolymer

回答

5

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

documentation

堆栈现在支持调试和分析与DWARF信息, 使用--no条,--no库剥离,和 --no可执行剥标志来禁用从编译的库和可执行文件中删除这些信息的默认行为。

相关问题