def start_control(host, port)
raise "Debugger is not started" unless started?
return if @control_thread
@control_thread = DebugThread.new do
begin
host ||= '127.0.0.1'
$stderr.printf "Fast Debugger (ruby-debug-ide #{IDE_VERSION}, ruby-debug-base #{VERSION}) listens on #{host}:#{port}\n"
server = TCPServer.new(host, port)
while (session = server.accept)
begin
interface = RemoteInterface.new(session)
@event_processor = EventProcessor.new(interface)
ControlCommandProcessor.new(interface).process_commands
rescue StandardError, ScriptError => ex
bt = ex.backtrace
$stderr.printf "Exception in DebugThread loop: #{ex.message}\nBacktrace:\n#{bt ? bt.join("\n from: ") : "<none>"}\n"
exit 1
end
end
rescue
bt = $!.backtrace
$stderr.printf "Fatal exception in DebugThread loop: #{$!.message}\nBacktrace:\n#{bt ? bt.join("\n from: ") : "<none>"}\n"
exit 2
end
end
end