Zainstalowałem wersję rozwojową Ruby 2 przez rbenv
na Mac OS X 10.8.3 i używam jej do kompilacji klejnotu, nad którym pracuję. Mam problem z pamięcią, którą chcę debugować. Niestety, gdy biegnę valgrind
, gdb
lub cgdb
w kontekście rake spec
, otrzymuję whole bunch of errors jak ten:Jak uzyskać rbenv, aby zachować symbole debugowania?
warning: Could not find object file "/private/var/folders/5f/h1s00nhn0rv4ckkpg4k_bwhr0000gn/T/ruby-build.20130331232604.54521/ruby-2.0.0-dev/main.o" - no debug information available for "main.c".
Oczywiście, że ruby-build
katalog już nie istnieje.
Otrzymuję series of likely-related errors od valgrind
. Oto przykłady:
--2564-- /Users/jwoods/.rbenv/versions/2.0.0-dev/lib/libyaml-0.2.dylib:
--2564-- dSYM directory is missing; consider using --dsymutil=yes
Gdy próbuję użyć tego --dsymutil=yes
opcja, pojawiają się błędy, które są w zasadzie takie same jak te z gdb
:
warning: (x86_64) /private/var/folders/5f/h1s00nhn0rv4ckkpg4k_bwhr0000gn/T/ruby-build.20130331232604.54521/ruby-2.0.0-dev/ext/openssl/ossl_bn.o unable to open object file
Za odpowiedź na inne pytanie, próbowałem działa info target
wewnątrz gdb
. Here is the output.
Czy jest jakiś sposób, abym mógł nakazać rbenv
umieścić symbole debugowania w miejscu, w którym nie zostaną wyczyszczone?
Używam GCC 4.7.1, który zainstalowałem przez homebrew. Mój dokładny ciąg w Ruby to ruby 2.1.0dev (2013-04-01 trunk 40029) [x86_64-darwin12.3.0]
, a moja wersja rbenv
to 0.4.0.
Proszę przenieść błędy i wyjście GDB na swoje pytanie. Łącza stają się nieaktualne i/lub zerwane z powodu zgnilizny łącza. Gdy to się stanie, twoje pytanie będzie nie do użytku dla osób, które chcą uzyskać odpowiedzi na ten sam problem. Poza tym, umieszczając twoje informacje poza domem, zmuszasz tych, którzy mogą chcieć pomóc w ich ściganiu, co marnuje ich czas. Pomóż nam pomóc, umieszczając tu informacje. –
Czy kiedykolwiek znalazłeś rozwiązanie tego problemu? Mam dokładnie to samo pytanie, szczegóły zawarte. –
Rodzaj, chociaż nie próbowałem zastosować go do 'rbenv'. Przypuszczam, że podczas kompilacji rbenv i Ruby musisz uruchomić 'dsymutil' na wynikowych plikach binarnych. To jedyny sposób, w jaki dostałem Maca, aby zachować symbole debugowania. –