Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails Byebug Did Not Stop Application

I want to use byebug to debug my application but the app is never stop although I already put byebug inside my code. Here is my Gemfile.

group :development, :test do   # Call 'byebug' anywhere in the code to stop execution and get a debugger console    gem 'byebug', '~> 5.0.0'    # Access an IRB console on exception pages or by using <%= console %> in views   gem 'web-console', '~> 2.0'  end 

I put byebug in one of my controller.

def edit   byebug   present Ingredient::Update end 

I already made all my request local in my development.rb. I already restart the server a couple times.

config.consider_all_requests_local       = true 

Here is the example stack trace that byebug only print the first trace and then the app keeps going on executing the next line.

web_1 | [43, 52] in /recipe/app/controllers/ingredients_controller.rb web_1 |    43:   def update web_1 |    44:     run Ingredient::Update do |op| web_1 |    45:       return redirect_to op.model web_1 |    46:     end web_1 |    47:     byebug web_1 | => 48:     render action: :edit web_1 |    49:   end web_1 |    50: web_1 |    51:   # DELETE /ingredients/1 web_1 |    52:   # DELETE /ingredients/1.json web_1 | (byebug)   Rendered ingredients/edit.haml within layouts/application (264.1ms) web_1 |   Rendered layouts/_navigation.haml (45.0ms) web_1 | Completed 200 OK in 2827ms (Views: 2764.0ms | ActiveRecord: 3.9ms) web_1 | web_1 | web_1 | Started GET "/assets/application.self-1ca8529ef221ef9dba25e835f258c4e62f2f49bce400273a67e63d7d73be28ba.css?body=1" for 192.168.59.3 at 2015-07-28 06:46:00 +0000 

Any idea? Update I use docker-compose and docker inside my Rails app.

like image 457
Edwin Lunando Avatar asked Jul 28 '15 06:07

Edwin Lunando


People also ask

How do you stop Byebug?

To exit byebug , use the quit command (abbreviated to q ). Normally, if you are in an interactive session, this command will prompt to ask if you really want to quit. If you want to quit without being prompted, enter quit unconditionally (abbreviated to q! ).

What is Byebug?

Byebug is a Ruby debugger. It's implemented using the TracePoint C API for execution control and the Debug Inspector C API for call stack navigation. The core component provides support that front-ends can build on.


2 Answers

When using docker-compose in combination with byebug this needs to be added to make it work properly. Found in this blog post

Add this to docker-compose.yml

web:   ...   stdin_open: true   tty: true 

Then run docker-compose in deamonized mode and attach to the web container with docker:

docker-compose up -d docker attach myappname_web_1 
like image 148
pgericson Avatar answered Oct 26 '22 21:10

pgericson


To enable debugger mode:

docker-compose run --service-ports web 

See this blog post

like image 43
Chryus Avatar answered Oct 26 '22 22:10

Chryus