2017-11-17 34 views
5

スタックを使用して静的にリンクされたバイナリをビルドしていますが、デバッグシンボルを追加しようとしています(以下:https://downloads.haskell.org/~ghc/master/users-guide/debug-info.html)。しかし、GDBはno debugging symbols foundを報告しています。静的にリンクされたバイナリにデバッグシンボルがありません

私には何が欠けていますか? -g -rtsoptsld-optionsへ:-static

私は.cabal fileghc-optionsに追加しました。私は、次のコマンドでスタックを使用して構築しています:

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防止情報はスタックビルドで削除されます。

スタックは今、--no-ライブラリーストリッピング、--no-ストリップを使用して、DWARF情報とデバッグとプロファイリングをサポート と --no-実行可能なストリッピング:documentationから

コンパイルされたライブラリと実行可能ファイルからそのような情報を削除するデフォルトの動作を無効にするフラグ。

関連する問題