2017-11-17 91 views
5

Buduję statycznie połączone pliki binarne za pomocą stosu i próbuję dodać do niego symbole debugowania (następujące: https://downloads.haskell.org/~ghc/master/users-guide/debug-info.html). Jednak raporty GDB: no debugging symbols found.Brakujące symbole debugowania w statycznie połączonych plikach binarnych

Czego mi brakuje?

Dodałem do ghc-options w .cabal file: -g -rtsopts i do ld-options: -static. Buduję użyciu stosu za pomocą następującego polecenia:

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

GDB jest wywoływany w następujący sposób: gdb --args nodebug-exe +RTS -V0

GHC 8.2.1

Cały kod źródłowy jest tutaj: https://github.com/carbolymer/haskell-missing-debug-symbols

+1

Może dodać --no-strip? '--no-strip: wyłącza usuwanie debugowania symboli DWARF w bibliotekach, plikach wykonywalnych itd. dla wszystkich wyrażeń'' – Zpalmtree

+0

@Zpalmtree, Zgadza się. Powinienem zajrzeć do 'stack install --help' ... Możesz dodać to jako odpowiedź. – carbolymer

Odpowiedz

5

--no-strip uniemożliwia debugowanie informacje są usuwane w kompilacji stosu.

Od documentation:

stos obsługuje debugowania i profilowania z kar informacji używając --no-pas, --no-biblioteka-stripping i --no-executable-stripping flagi, aby wyłączyć domyślne zachowanie usuwania takich informacji ze skompilowanych bibliotek i plików wykonywalnych.

Powiązane problemy