lib/byebug/commands/kill.rb
# frozen_string_literal: true
require_relative "../command"
module Byebug
#
# Send custom signals to the debugged program.
#
class KillCommand < Command
self.allow_in_control = true
def self.regexp
/^\s* kill \s* (?:\s+(\S+))? \s*$/x
end
def self.description
<<-DESCRIPTION
kill[ signal]
#{short_description}
Equivalent of Process.kill(Process.pid)
DESCRIPTION
end
def self.short_description
"Sends a signal to the current process"
end
def execute
if @match[1]
signame = @match[1]
return errmsg("signal name #{signame} is not a signal I know about\n") unless Signal.list.member?(signame)
else
return unless confirm("Really kill? (y/n) ")
signame = "KILL"
end
processor.interface.close if signame == "KILL"
Process.kill(signame, Process.pid)
end
end
end