2012-02-25 2 views
9

Possible Duplicate:
ruby-debug with Ruby 1.9.3?Rails 3.1 и Руби 1.9.3p125: рубиново-debug19 по-прежнему падает с «Символ не найден: _ruby_threadptr_data_type»

Я слышал слухи о том, что рубин 1.9.3p125 имеет решение проблемы рубинового debug19, поэтому в инструкции на сайте РВМ, я переустановил 1.9.3:

$ rvm reinstall 1.9.3 --patch debug --force-autoconf 
$ ruby -v 
    ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.2.0] 

Тогда:

gem install ruby-debug19 

Добавлено эту запись в мой Gemfile:

gem 'ruby-debug19' 

Тогда:

$ rails server -u   
=> Booting WEBrick 
=> Rails 3.1.3 application starting in development on http://0.0.0.0:3000 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
You need to install ruby-debug to run the server in debugging mode. With gems, use 'gem install ruby-debug' 
Exiting 

Чтобы пройти эту ошибку я изменил мою запись Gemfile к:

gem 'ruby-debug19', :require => 'ruby-debug' 

Теперь новая ошибка с сервера:

/Users/don/.rvm/gems/ruby-1.9.3-p125/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `require': dlopen(/Users/don/.rvm/gems/ruby-1.9.3-p125/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.bundle, 9): Symbol not found: _ruby_threadptr_data_type (LoadError) 
    Referenced from: /Users/don/.rvm/gems/ruby-1.9.3-p125/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.bundle 
    Expected in: flat namespace 
in /Users/don/.rvm/gems/ruby-1.9.3-p125/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.bundle - /Users/don/.rvm/gems/ruby-1.9.3-p125/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.bundle 

I 'очень смущены сотнями сообщений о том, как справиться с этим рубином-d проблема ebug19. Я надеялся, что это было решено. Очевидно нет. Какие-либо предложения? (Если кто-то предлагает патч, предоставьте пошаговые инструкции о том, как его применять. В прошлом я боролся с исправлениями.)

ответ

36

A fork of ruby-debug just called 'debugger' существует в настоящее время, что включает в себя множество исправлений люди были развертывают на вершине рубинового debug19, так что вы должны быть в состоянии просто изменить Gemfile к

gem 'debugger' 

... и от вас идти.

+1

Большое спасибо за это, портируя некоторые шаблоны из рельсов, и я * не * рельсовый парень. – mkocubinski

+0

Я получил: 'Исключено исключение: несоответствие суперкласса для класса RemoteInterface' –

+0

Это работает! Спасибо. Обратите внимание на читателей, что старый камень нужно удалить, чтобы это работало. –

3

Короче говоря: оно не разрешено, и официальное разрешение будет доступно только с новая версия ruby-debug19 или ruby-debug-base19. Я знаю, это довольно усугубляет ситуацию.

Я тоже много сделал для этого, и я следил за вещами с тех пор, как вышел 1.9.3 (потому что мы любим любить использовать его в производстве). Однако, к сожалению, 1.9.3-p125 не имеет исправления для ruby-debug. Только ruby-debug19 будет иметь исправление для ruby-debug19, так как авторы ruby-debug19 и ruby-debug-base19 работают над патчем и имеют обновленную тестовую сборку, работающую над Ruby 1.9.3 ... но они haven't released it to the general public. ruby-debug-base19 hasn't seen a release в эоны; ruby-debug19 еще дольше (с '09).

Если вы на rvm head, вы должны быть в состоянии установить 1.9.3-P125 с дополнительным «сокола заплаткой» found here (и отметил о РВМ here. This gist, кажется, лучше инструкции (это новая вилка из старых один).

+0

Я попытался соколы патча с помощью RVM - все еще получает ошибку символа: символ не найдено: _ruby_current_thread (LoadError) :-( –

3

самое лучшее, что нужно сделать, это просто использовать pry. Сво IRB, как замена для ruby-debug и он работает со всеми версиями Ruby, без каких-либо неприятных заплат!

https://github.com/pry/pry

+0

Я знаю монтировка хорошо для просмотра состояния программы, но позволяет ли вам отслеживать трассировку стека и путь к коду? Я просмотрел документы, но не смог найти ничего из этого. ** EDIT **: найдено [pry-debug] (https : //github.com/Mon-Ouie/pry_debug) - Мне нужно дать этот снимок. –

+0

Поцарапайте это, это не то, что я искал в отношении pry. Вместо этого [pry-nav] (http: //github.com/nixme/pry-nav) выглядит как билет. –

+0

pry - отличный инструмент. Я использовал его как стоп-пробел, но мне действительно нужны «шаг», «следующий» и «следующий», продолжить "функциональность. Benjamin - pry-na v выглядит очень, очень новым. Я попытался использовать его, когда он был впервые опубликован, но не смог заставить его работать последовательно. Он работает на вас? –

0

Вы должны передать --with-ruby-include и указать его в каталоге src, чтобы это работало.

(большинство из этих ответов в другом месте на SO пошел несвежим, так как 1.9.3-P125.)

я написал новые инструкции здесь для Ubuntu 11.10, которые работают на моей машине, но дать им попробовать на Дарвин и посмотреть, помогут ли они?: https://gist.github.com/2218661

0

У меня были проблемы с использованием Rails 3.2 с отладкой Ruby 1.9.3p0 в Aptana.
Для меня новый ruby-debug-base193 не компилируется. Но то, что хорошо работает это исправление, был размещен в другом месте:

Gemfile:
камень «рубиново-отладки ide19»
камень «рубиново-отладки base19»

А затем обеспечивая недостающую is_binary_data ? метод где-то. Я положил его в моем Rails application.rb файл следующим образом:

class String 
    def is_binary_data? 
    (self.count("^ -~", "^\r\n").fdiv(self.size) > 0.3 || self.index("\x00")) unless empty? 
    end 
end