Ruby Débogueur de RubyMine
-
29-10-2019 - |
Question
Je suis en train de lancer le débogueur de Rubymine et je reçois ce message d'erreur.
/Users/skline/.rvm/rubies/ruby-1.9.2-p136/bin/ruby -e at_exit{sleep(1)};$stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/skline/.rvm/gems/ruby-1.9.2-p136/gems/ruby-debug-ide-0.4.17.beta3/bin/rdebug-ide --port 49877 -- /Users/skline/Sites/2t2/app/mailers/user_notifications.rb
Fast Debugger (ruby-debug-ide 0.4.17.beta3, ruby-debug-base 0.11.26) listens on 127.0.0.1:49877
<internal:lib/rubygems/custom_require>:29:in `require'
<internal:lib/rubygems/custom_require>:29:in `require'
/Users/skline/Sites/2t2/app/mailers/user_notifications.rb:1:in `<top (required)>'
/Users/skline/.rvm/gems/ruby-1.9.2-p136/gems/ruby-debug-ide-0.4.17.beta3/lib/ruby-debug-ide.rb:112:in `debug_load'
/Users/skline/.rvm/gems/ruby-1.9.2-p136/gems/ruby-debug-ide-0.4.17.beta3/lib/ruby-debug-ide.rb:112:in `debug_program'
/Users/skline/.rvm/gems/ruby-1.9.2-p136/gems/ruby-debug-ide-0.4.17.beta3/bin/rdebug-ide:87:in `<top (required)>'
-e:1:in `load'
-e:1:in `<main>'
Uncaught exception: no such file to load -- safe_mailer
Process finished with exit code 0
Toutes les pensées?
La solution
Il ressemble à un joyau ou à une autre dépendance modifiée dans votre application. L'erreur que vous signalez semble avoir la réponse intégrée à celle-ci: vérifiez votre /App/mailers/user_notifications.rb et voyez quelle ligne d'exigence 1 appelle. Regardez ensuite Lib / RubyGems / Custom_Require à la ligne 29. L'un de ces deux fichiers semble demander quelque chose qu'il ne peut pas trouver. Je n'ai aucune expérience avec le gemme que vous utilisez, mais il semble que vous ayez peut-être manqué une dépendance au gemm, une erreur de version GEM ou une instruction inclue pour quelque chose qui n'existe plus ou qui a déplacé / modifié des noms.
Autres conseils
Problème
J'ai eu une erreur similaire lors de l'utilisation d'Exécuter > Débogage à l'aide de RubyMine 2016.2.4.
/Users/Mp/.rvm/rubies/ruby-2.3.0/bin/ruby -e at_exit{sleep(1)};$stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/Mp/.rvm/gems/ruby-2.3.0@global/gems/ruby-debug-ide-0.6.0/bin/rdebug-ide --disable-int-handler --evaluation-timeout 10 --rubymine-protocol-extensions --port 54743 --host 0.0.0.0 --dispatcher-port 54744 -- /Users/Mp/code/apps/ruby_test/team_system/team.rb
Fast Debugger (ruby-debug-ide 0.6.0, debase 0.2.1, file filtering is supported) listens on 0.0.0.0:54743
Process finished with exit code 0
Au départ lorsque j'ai mis un point d'arrêt dans un exemple de fichier ruby équipe.rb et a couru Exécuter > Debug, il a travaillé (console il affiche 0>
au lieu de Process finished with exit code 0
)
class Team
attr_reader :size
def initialize(size)
@size = size
end
end
team = Team.new(100)
J'ai passé des heures à essayer de résoudre, sans succès, à la suite de messages sur l'internet.J'étais prêt à réinstaller RubyMine, et j'ai décidé de contacter leur support par email.J'ai dit que j'avais tout essayé, tels que:
- Le redémarrage de mon ordinateur
- Le redémarrage de RubyMine et en cours d'exécution
rm -rf .idea
- L'exécution de
gem pristine --all
- Essayer avec ruby 2.1.2 au lieu de 2.3.0 (c'est à dire
rvm install 2.1.2
rvm list
rvm use 2.1.2
) - La vérification de mes RVM version
rvm -v
rvm 1.26.11 - Vérification de l'emplacement de gemmes avec
gem env
etwhich ruby
.Ceci indique qu'ils sont à la fois dans /usr/bin/ruby et /Utilisateurs/Ls/.rvm/rubis/ruby-2.3.0/bin/ruby - Désinstallation (c'est à dire
gem uninstall ...
) les pierres précieuses à la fois dans le Ruby emplacement par défaut et le RVM - De les réinstaller à nouveau
$ gem install debug_inspector $ gem install debugger-linecache $ gem install ruby-debug-ide $ gem install debase $ gem install debase-ruby_core_source $ gem install -i /Users/Ls/.rvm/gems/ruby-2.3.0@global debug_inspector $ gem install -i /Users/Ls/.rvm/gems/ruby-2.3.0@global debug-linecache $ gem install -i /Users/Ls/.rvm/gems/ruby-2.3.0@global ruby-debug-ide $ gem install -i /Users/Ls/.rvm/gems/ruby-2.3.0@global debase $ gem install -i /Users/Ls/.rvm/gems/ruby-2.3.0@global debase-ruby_core_source $ gem install linecache19-0.5.13.gem
- L'exécution de
bundle update
- La mise à jour de RubyMine 2016.2.4
- Allez à Fichier > Paramètres par Défaut > Langues & Cadres > Ruby SDK et des pierres précieuses > et en sélectionnant l'option utiliser RVM:ruby-2.3.0
- Allez Exécuter > Modifier les Configurations actuelles fichier ruby, et dans l'onglet Configuration en cliquant sur "Utiliser d'Autres SDK" et en choisissant RVM:ruby-2.3.0 [global] (j'ai aussi essayé de choisir RVM:ruby-2.3.0)
Solution
J'ai reçu des commentaires de RubyMine Soutien suggérant que je leur montre la sortie de gem list
et pour activer la Sortie détaillée (Paramètres > Construire, l'Exécution, le Déploiement > Debugger > Verbose débogueur).
Au lieu de répondre immédiatement à leurs commentaires m'ont donné un bon indice, il doit être causé par un bijou de conflit, donc j'ai essayé la méthode suivante, qui a obtenu de travailler à nouveau!
- Effacé RubyMine Cache
File > Invalidate Caches & Restart > Invalidate Caches & Restart
- A montré les gems Ruby stockées au niveau mondial, dans RVM 2.3.0 (global), et dans RVM 2.3.0 (par défaut).Note:J'ai filtré la liste ci-dessous pour afficher uniquement les éléments pertinents
$ GEM_PATH=$GEM_HOME gem list
LOCAL GEMS
debase (0.2.1)
debase-ruby_core_source (0.9.2)
debug_inspector (0.0.2)
debugger-linecache (1.2.0)
linecache19 (0.5.13)
ruby-debug-ide (0.6.1.beta2, 0.6.0)
ruby_core_source (0.1.5)
$ rvm ruby-2.3.0 do gem list
LOCAL GEMS
debase (0.2.1)
debase-ruby_core_source (0.9.2)
debug_inspector (0.0.2)
debugger-linecache (1.2.0)
linecache19 (0.5.13)
ruby-debug-ide (0.6.1.beta2, 0.6.0)
ruby_core_source (0.1.5)
$ rvm ruby-2.3.0 @global do gem list
LOCAL GEMS
debase (0.2.1)
debase-ruby_core_source (0.9.2)
debug_inspector (0.0.2)
linecache19 (0.5.13)
ruby-debug-ide (0.6.0)
- Installé la dernière version de Ruby
$ rvm install ruby-2.3.1
- A montré les gems Ruby dans RVM 2.3.1 (global) et le RVM 2.3.1 (par défaut).À la fois avec le même résultat
$ rvm ruby-2.3.1 do gem list
$ rvm ruby-2.3.1 @global do gem list
LOCAL GEMS
bigdecimal (1.2.8)
did_you_mean (1.0.0)
gem-wrappers (1.2.7)
io-console (0.4.5)
json (1.8.3)
minitest (5.8.3)
net-telnet (0.1.1)
power_assert (0.2.6)
psych (2.0.17)
rake (10.4.2)
rdoc (4.2.1)
rvm (1.11.3.9)
test-unit (3.1.5)
- Vérifié version actuelle de RVM et mis à niveau à partir 1.26.11 à la dernière version 1.27.0
$ rvm -v $ rvm get stable $ rvm reload $ rvm list
- Créé un Sertie spécifiquement pour le logement des gemmes pour tester les fonctionnalités à l'aide de RubyMine https://rvm.io/gemsets/basics
rvm ruby-2.3.1 do rvm gemset create rubymine_2016_4_2
- Vérifié version de Ruby avait changé
$ ruby -v ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]
- Ouvert RubyMine 2016_2_4 et est allé à Fichier > Paramètres par Défaut > Langues & Cadres > Ruby SDK et de pierres précieuses.Je l'ai décochée RVM:ruby-2.3.0, et puis, au lieu sélectionné RVM:ruby-2.3.1 rubymine_2016_2_4.J'ai ensuite cliqué sur la "coche verte' icône à utiliser pour le projet, et enfin cliqué sur OK
- Avec l'équipe.rb fichier que je voulais debug ouvert, j'ai ensuite ouvert Exécuter > Modifier les Configurations.Puis, j'ai sélectionné d'Autres SDK:RVM:ruby-2.3.1 [rubymine_2016_2_4], et enfin cliqué sur OK.Cela a provoqué une fenêtre pop-up affiche, indiquant:"le joyau de rabaisser requis par le débogueur n'est pas installé actuellement.Aimeriez-vous l'installer?".J'ai cliqué sur Oui
- Vérifié pour voir combien de RubyMine avait changé ma personnalisé rubymine_2016_2_4 sertie
$ rvm ruby-2.3.1@rubymine_2016_2_4 do gem list
LOCAL GEMS
bigdecimal (1.2.8)
debase (0.2.2.beta8, 0.2.1)
debase-ruby_core_source (0.9.2)
did_you_mean (1.0.0)
gem-wrappers (1.2.7)
io-console (0.4.5)
json (1.8.3)
minitest (5.8.3)
net-telnet (0.1.1)
power_assert (0.2.6)
psych (2.0.17)
rake (10.4.2)
rdoc (4.2.1)
ruby-debug-ide (0.6.1.beta2)
rvm (1.11.3.9)
test-unit (3.1.5)
- Essayé de débogage de nouveau en définissant un point d'arrêt dans l'exemple de fichier ruby équipe.rb et a couru Exécuter > Debug.Il a travaillé et console il affiche
0>
au lieu deProcess finished with exit code 0