2013-05-07 9 views
7

Я установил версию для разработки Ruby 2 через rbenv на Mac OS X v10.8.3, и использую ее для компиляции драгоценного камня, над которым я работаю. У меня проблема с памятью, которую я хочу отлаживать. К сожалению, каждый раз, когда я бегу valgrind, gdb или cgdb в контексте rake spec, я получаю whole bunch of errors как это одна:Как мне получить rbenv для хранения отладочных символов?

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". 

Очевидно, что ruby-build каталог больше не существует.

Я получаю series of likely-related errors от valgrind. Вот примеры:

--2564-- /Users/jwoods/.rbenv/versions/2.0.0-dev/lib/libyaml-0.2.dylib: 
--2564-- dSYM directory is missing; consider using --dsymutil=yes 

Если я пытаюсь использовать это --dsymutil=yes вариант, я получаю ошибки, которые в основном такие же, как те, из 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 

За ответом на другой вопрос, я попытался запустить info target внутри gdb. Here is the output.

Есть ли способ, которым я могу указать rbenv, чтобы помещать символы отладки где-то, чтобы они не очищались?

Я использую GCC 4.7.1, который я установил через доморощенный. Моя точная строка версии Ruby - ruby 2.1.0dev (2013-04-01 trunk 40029) [x86_64-darwin12.3.0], а моя версия rbenv - 0.4.0.

+0

Пожалуйста, переместите ошибки и вывод gdb в свой вопрос. Ссылки становятся устаревшими и/или ломаются из-за ссылки-гниения. Как только это произойдет, ваш вопрос станет непригодным для людей, которые хотят получить ответы на эту же проблему. Кроме того, размещая вашу информацию вне сайта, вы заставляете тех, кто может захотеть помочь преследовать ее, что отнимает у них время. Помогите нам помочь вам, разместив здесь информацию. –

+0

Вы когда-нибудь находили решение? У меня точно такой же вопрос, включая детали. –

+0

Сортировка, хотя я не пыталась применить ее к 'rbenv'. Я полагаю, что когда вы компилируете rbenv и Ruby, вы должны запустить 'dsymutil' в результирующих двоичных файлах. Это единственный способ заставить Mac сохранить мои отладочные символы. –

ответ

1

Согласно документации для ruby-build:

Оба рубинового сборки и rbenv установки принять -к или --keep флаг, который указывает рубиновый-билд, чтобы сохранить загруженный источник после установки. Это может быть полезно, если вам нужно использовать gdb и memprof с Ruby.

Так что попробуйте ruby-build install X -k, где X - номер версии.