class DEBUGGER__::UI_LocalConsole
Public Class Methods
new()
click to toggle source
# File debug-1.8.0/lib/debug/local.rb, line 8 def initialize @console = Console.new end
Public Instance Methods
activate(session, on_fork: false)
click to toggle source
# File debug-1.8.0/lib/debug/local.rb, line 32 def activate session, on_fork: false activate_sigint unless CONFIG[:no_sigint_hook] end
activate_sigint()
click to toggle source
# File debug-1.8.0/lib/debug/local.rb, line 16 def activate_sigint prev_handler = trap(:SIGINT){ if SESSION.active? ThreadClient.current.on_trap :SIGINT end } SESSION.intercept_trap_sigint_start prev_handler end
after_fork_parent()
click to toggle source
# File debug-1.8.0/lib/debug/local.rb, line 96 def after_fork_parent parent_pid = Process.pid at_exit{ SESSION.intercept_trap_sigint_end trap(:SIGINT, :IGNORE) if Process.pid == parent_pid # only check child process from its parent begin # wait for all child processes to keep terminal Process.waitpid rescue Errno::ESRCH, Errno::ECHILD end end } end
ask(prompt)
click to toggle source
# File debug-1.8.0/lib/debug/local.rb, line 54 def ask prompt setup_interrupt do print prompt ($stdin.gets || '').strip end end
deactivate()
click to toggle source
# File debug-1.8.0/lib/debug/local.rb, line 36 def deactivate deactivate_sigint @console.deactivate end
deactivate_sigint()
click to toggle source
# File debug-1.8.0/lib/debug/local.rb, line 25 def deactivate_sigint if SESSION.intercept_trap_sigint? prev = SESSION.intercept_trap_sigint_end trap(:SIGINT, prev) end end
puts(str = nil)
click to toggle source
# File debug-1.8.0/lib/debug/local.rb, line 61 def puts str = nil case str when Array str.each{|line| $stdout.puts line.chomp } when String str.each_line{|line| $stdout.puts line.chomp } when nil $stdout.puts end end
quit(n) { || ... }
click to toggle source
# File debug-1.8.0/lib/debug/local.rb, line 49 def quit n yield exit n end
readline(prompt = '(rdbg)')
click to toggle source
# File debug-1.8.0/lib/debug/local.rb, line 76 def readline prompt = '(rdbg)' setup_interrupt do (@console.readline(prompt) || 'quit').strip end end
remote?()
click to toggle source
# File debug-1.8.0/lib/debug/local.rb, line 12 def remote? false end
setup_interrupt() { || ... }
click to toggle source
# File debug-1.8.0/lib/debug/local.rb, line 82 def setup_interrupt SESSION.intercept_trap_sigint false do current_thread = Thread.current # should be session_server thread prev_handler = trap(:INT){ current_thread.raise Interrupt } yield ensure trap(:INT, prev_handler) end end
width()
click to toggle source
# File debug-1.8.0/lib/debug/local.rb, line 41 def width if (w = IO.console_size[1]) == 0 # for tests PTY 80 else w end end