lib/byebug/attacher.rb
# frozen_string_literal: true
#
# Main Container for all of Byebug's code
#
module Byebug
#
# Starts byebug, and stops at the first line of user's code.
#
def self.attach
unless started?
self.mode = :attached
start
run_init_script
end
current_context.step_out(3, true)
end
def self.spawn(host = "localhost", port = nil)
require_relative "core"
self.wait_connection = true
start_server(host, port || PORT)
end
end
#
# Adds a `byebug` method to the Kernel module.
#
# Dropping a `byebug` call anywhere in your code, you get a debug prompt.
#
module Kernel
def byebug
require_relative "core"
Byebug.attach unless Byebug.mode == :off
end
def remote_byebug(host = "localhost", port = nil)
Byebug.spawn(host, port)
Byebug.attach
end
alias debugger byebug
end