Jak połączyć się ze zdalnym instancją debugowania programu Byebug (do użytku z Pow itp.)?Jak używać programuBebug z procesem zdalnym (np. Pow)
Odpowiedz
musiałem poskładać informacje z wielu różnych źródeł w celu osiągnięcia powyższego, więc pomyślałem, że to skonsolidowany instrukcji tutaj dla wygody:
- https://github.com/deivid-rodriguez/byebug/pull/29,
- https://github.com/deivid-rodriguez/byebug/pull/36,
- https://github.com/deivid-rodriguez/byebug/issues/31
- http://mines.mouldwarp.com/2012/04/pow-guard-and-rdebug-staying-in-web-app.html
Oto kroki:
W config/środowiskach/development.rb dodać:
require 'byebug' #set in your .powconfig if ENV['RUBY_DEBUG_PORT'] Byebug.start_server 'localhost', ENV['RUBY_DEBUG_PORT'].to_i else Byebug.start_server 'localhost' end
Restart Pow i odwiedzić yourapp.dev
uruchom następujące:
[bundle exec] byebug -R localhost:<port_you_defined_in_pow_config>
Powinieneś zobaczyć udane połączenie ze zdalną instancją.
Odpowiedź Józefa była dobra, ale myląca na kilka małych sposobów. Umieszcza uruchamianie serwera byebug w config/environments/development.rb
, kiedy byłoby lepiej w inicjalizatorze. Dodatkowo eksport zmiennej środowiskowej następuje w .powenv
lub .powrc
. W ten sposób udało mi się go uruchomić.
W swojej gemfile:
gem 'byebug'
W wierszu poleceń:
bundle install
Jeśli używasz Pow, dodać następujące .powenv
:
export BYEBUGPORT=3001
Jeśli używasz inne struktury (np. tylko foreman
), może być konieczna modyfikacja .env
zamiast tego.
W config/initializers/byebug.rb
if Rails.env.development? and ENV['BYEBUGPORT']
require 'byebug/core'
Byebug.start_server 'localhost', ENV['BYEBUGPORT'].to_i
end
I wreszcie w wierszu poleceń: serwer byebug należy rozpocząć
touch tmp/restart.txt
Po przejściu do witryny pow. W linii poleceń możesz teraz:
[bundle exec] byebug -R localhost:3001
naprawdę dobrze zrobione. Działało dokładnie tak, jak to udokumentowałeś. –
Yup, postępuj zgodnie z instrukcjami i działa jak urok. Dziękuję Nicholas! –
Pamiętaj, że "touch tmp/restart.txt" może nie być potrzebny, w zależności od serwera aplikacji. Wymagane dla Pasażera w produkcji, zwykle nie jest potrzebne w rozwoju na żadnym serwerze aplikacji. –
Dziękuję za to. Mogę połączyć się z serwerem, ale moje punkty przerwania się nie łamią. Jakieś pomysły? Miejsca do rozpoczęcia? Dzięki! –
Czy używasz pow? Jeśli tak, spróbuj pierwszej odpowiedzi w http: // stackoverflow.com/questions/8996498/ruby-debug-with-pow-breakpoints-never-hit –
Używam pow. Próbowałem odpowiedzi, bez powodzenia. Siedzę na terminalu z 'Connecting to byebug server localhost: 12346. Connected. "I mnóstwo" byebug "wywołań w moim kodzie, ale bez zerwania! W tej chwili nie mogę sobie pozwolić - jeśli masz jakieś inne pomysły, jestem uszy! W przeciwnym razie, dziękuję w każdym razie za pomoc! –