O que vocês usam para depuração no ruby 1.9? rdebug não parece ser compatível .. há algo lá fora?
O que vocês usam para depuração no ruby 1.9? rdebug não parece ser compatível .. há algo lá fora?
Respostas:
Nota: esta resposta estava correta, mas agora está desatualizada. Veja a resposta correta abaixo. TL; DR: use 'depurador' agora.
ruby-debug agora está disponível com Ruby 1.9.x. Veja http://www.github.com/mark-moseley
Para instalar (usando gem na instalação do Ruby 1.9):
gem install ruby-debug19
(com talvez o 'sudo' necessário na frente dele).
ruby-debug19
não é mais mantido. Todas as outras respostas estão desatualizadas.
Mas há uma alternativa:
debugger
para o resgate!
Coloque isso em seu Gemfile
:
gem 'debugger', group: [:development, :test]
Simplesmente funciona. - E está incluso no Gemfile dos trilhos desde 3.2.algo para substituir ruby-debug19
. Ele tem exatamente a mesma funcionalidade e é mantido ativamente.
group :development do ... end
ou semelhante), porque ele já contém um grupo.
ATUALIZAÇÃO PARA RUBY 2.0+ e SEGUINTE
byebug é o depurador atualmente recomendado para Ruby 2.0+
Este problema foi documentado aqui , e cldwalker, o autor do debugger, observa que o debugger terá como escopo Ruby 1.9.2 e 1.9.3.
ATUALIZAÇÃO 2
É verdade que ruby-debug não é mantido ativamente, mesmo que eu não consiga encontrar nenhum lugar que não seja mais mantido.
Você pode usar a nova gema do depurador se precisar de ajuda para começar com a nova gema, você pode ver Ryan Bates elenco dos rails .
Em seu Gemfile coloque:
gem 'debugger', group: [:development, :test]
Você pode então adicionar um ponto de interrupção em qualquer lugar em seu código usando a debugger
palavra - chave.
VOCÊ AINDA PODE USAR
linecache19 e ruby-debug-base19 com:
bash <<(curl -L https://raw.github.com/gist/1333785 )
ANSWERS ANSWERS
Apenas um complemento sobre isso com rvm, ruby 1.9.1-p378. A verdadeira história é que mesmo se ruby-debug estiver pronto para 1.9.x, linecache-0.43 não está. A solução é instalar:
gem install ruby-debug19
Isso resolve o problema para mim.
ATUALIZAÇÃO ANTIGA
Se você está tendo problemas com Ruby 1.9.2 e Rails 3 debugging put:
gem 'ruby-debug-base19', "0.11.24"
gem 'ruby-debug19', "0.11.6"
Em seu Gemfile e fazendo um
bundle install
Fará de você um depurador feliz novamente.
Algumas coisas que você poderia tentar
1) execute-o com o depurador normal do Ruby -rdebug [1] meio lento
2) executá-lo com a gema desenroladora [meio que fede, muito lento]
3) usar um monte de declarações de impressão rápido, meio que menos introspecção possível
4) vá para um prompt do irb e execute algum código a partir daí.
você poderia listar o código criando seu próprio “prompt irb” que listasse o código em torno de si mesmo [use o caller para descobrir onde você está] e então cair em um prompt irb normal.
5) talvez o jruby no modo de compatibilidade 1.9 tenha um depurador?
Veja minha resposta aqui: Ruby-debug not working - Stack Overflow
Trata-se de fazer com que a depuração Ruby funcione com a seguinte configuração
Usando o rvm, no diretório de trabalho do meu projeto, tenho um .rvmrc declarando:
rvm use ruby-1.9.3-p0@mygemset
Eu espero que isso ajude!
- Freddy
Eu costumava seguir e funciona muito bem para mim:
gem 'depurador', grupo: [: desenvolvimento,: teste]
ruby 1.9.3p194 (2012-04-20 revisão 35410) [x86_64-linux] rails 3.2.8
Netbeans é um bom IDE para RoR. Bom depurador também.
A versão do ruby 1.9.1-p243 foi lançada e o ruby-debug-ide compatível também está funcionando corretamente. Instale ruby-debug-ide usando o seguinte comando:
gem install ruby-debug-ide
Isso irá instalar as gemas ruby-debug-base19 e ruby-debug-ide. Mas antes disso, certifique-se de instalar o mingw com sucesso, seguindo a documentação do kit de desenvolvimento disponível em RubyForge .
Os recursos mais recentes estão disponíveis em ruby-debug-ide19 gem.
Existem muitas opções, dependendo das suas necessidades.
Eu uso pry-moves porque posso "olhar para trás" no que aconteceu dentro do comando anterior, reexecutando-os no modo de depuração direto do local.
ninguém usa: ruby -rdebug script.rb
então você pode usar: b script.rb: ## (onde ## é o número da linha de um comando ruby válido), caso contrário, você estará talvez no meio de rubygems ou um de seus pedaços de código necessários.
Então você pode simplesmente definir o próximo ponto de interrupção como b: ##
ruby-debug19
está desatualizado agora.