bom trabalho :) mas você poderia fazer um fatgem (contendo as versões 1.8 e 1.9 do ruby-debug) para que não tenhamos que nos lembrar de fazer o rubydebbug19? :)
horseyguy
4
Não parece justo negar isso apenas porque o passar do tempo tornou a resposta errada. O SO precisa de alguma forma de lidar com esses casos de uso, para permitir que a nova resposta certa se torne a primeira listada, sem penalizar os autores de respostas mais antigas que não são mais úteis para ninguém.
iconoclasta
167
ruby-debug19não é mais mantido. Todas as outras respostas estão desatualizadas.
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.
Funciona bem. Muito melhor do que instalar o ruby-debug manualmente. Obrigado.
manu_v 01 de
5
Isso realmente precisa ser colocado como a melhor resposta.
Matt Zukowski
2
Sim, realmente esta resposta deve ser a resposta principal.
Nazar Hussain
E onde isso realmente vai no Gemfile.
Rig
Não importa. Coloque-o onde quiser, apenas não dentro de um bloco de grupo (Não em group :development do ... endou semelhante), porque ele já contém um grupo.
iblue
70
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.
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:
Obrigado, para mim essa foi a resposta mais adequada. Mas talvez seja porque você respondeu quase um ano depois e as coisas mudaram para sempre a esse respeito.
marcar
3
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?
Se você ainda tiver problemas após instalar o ruby-debug19, tente atualizar o ruby-debug-base19. Eu tinha erros e não conseguia executar o WEBrick no modo de depuração até fazer isso.
gem update ruby-debug-base19
Oh, e obrigado Sr. Moseley por todo o seu trabalho árduo!
Corrija-me se estiver errado, mas não acredito que o depurador funcione para Ruby 1.9.1 (implementação C) ainda. Pelo menos, não tive sucesso em fazê-lo funcionar.
JP Richardson
0
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 .
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.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):
(com talvez o 'sudo' necessário na frente dele).
fonte
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
: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.fonte
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:
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:
Isso resolve o problema para mim.
ATUALIZAÇÃO ANTIGA
Se você está tendo problemas com Ruby 1.9.2 e Rails 3 debugging put:
Em seu Gemfile e fazendo um
Fará de você um depurador feliz novamente.
fonte
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?
[1] http://beaver.net/rdebug/index-0.html
fonte
Se você ainda tiver problemas após instalar o ruby-debug19, tente atualizar o ruby-debug-base19. Eu tinha erros e não conseguia executar o WEBrick no modo de depuração até fazer isso.
Oh, e obrigado Sr. Moseley por todo o seu trabalho árduo!
fonte
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:
Eu espero que isso ajude!
- Freddy
fonte
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
fonte
Netbeans é um bom IDE para RoR. Bom depurador também.
fonte
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:
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 .
fonte
Os recursos mais recentes estão disponíveis em ruby-debug-ide19 gem.
fonte
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.
fonte
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: ##
fonte