class DEBUGGER__::Breakpoint

Attributes

key[R]

Public Class Methods

new(cond, command, path, do_enable: true) click to toggle source
# File debug-1.6.3/lib/debug/breakpoint.rb, line 11
def initialize cond, command, path, do_enable: true
  @deleted = false

  @cond = cond
  @command = command
  @path = path

  setup
  enable if do_enable
end

Public Instance Methods

delete() click to toggle source
# File debug-1.6.3/lib/debug/breakpoint.rb, line 52
def delete
  disable
  @deleted = true
end
deleted?() click to toggle source
# File debug-1.6.3/lib/debug/breakpoint.rb, line 57
def deleted?
  @deleted
end
description() click to toggle source
# File debug-1.6.3/lib/debug/breakpoint.rb, line 80
def description
  to_s
end
disable() click to toggle source
# File debug-1.6.3/lib/debug/breakpoint.rb, line 44
def disable
  @tp&.disable
end
duplicable?() click to toggle source
# File debug-1.6.3/lib/debug/breakpoint.rb, line 84
def duplicable?
  false
end
enable() click to toggle source
# File debug-1.6.3/lib/debug/breakpoint.rb, line 40
def enable
  @tp.enable
end
enabled?() click to toggle source
# File debug-1.6.3/lib/debug/breakpoint.rb, line 48
def enabled?
  @tp.enabled?
end
generate_label(name) click to toggle source
# File debug-1.6.3/lib/debug/breakpoint.rb, line 101
def generate_label(name)
  colorize(" BP - #{name} ", [:YELLOW, :BOLD, :REVERSE])
end
oneshot?() click to toggle source
# File debug-1.6.3/lib/debug/breakpoint.rb, line 32
def oneshot?
  defined?(@oneshot) && @oneshot
end
safe_eval(b, expr) click to toggle source
# File debug-1.6.3/lib/debug/breakpoint.rb, line 22
def safe_eval b, expr
  b.eval(expr)
rescue Exception => e
  puts "[EVAL ERROR]"
  puts "  expr: #{expr}"
  puts "  err: #{e} (#{e.class})"
  puts "Error caused by #{self}."
  nil
end
setup() click to toggle source
# File debug-1.6.3/lib/debug/breakpoint.rb, line 36
def setup
  raise "not implemented..."
end
skip_path?(path) click to toggle source
Calls superclass method DEBUGGER__::SkipPathHelper#skip_path?
# File debug-1.6.3/lib/debug/breakpoint.rb, line 88
def skip_path?(path)
  case @path
  when Regexp
    !path.match?(@path)
  when String
    !path.include?(@path)
  else
    super
  end
end
suspend() click to toggle source
# File debug-1.6.3/lib/debug/breakpoint.rb, line 61
def suspend
  if @command
    provider, pre_cmds, do_cmds = @command
    nonstop = true if do_cmds
    cmds = [*pre_cmds&.split(';;'), *do_cmds&.split(';;')]
    SESSION.add_preset_commands provider, cmds, kick: false, continue: nonstop
  end

  ThreadClient.current.on_breakpoint @tp, self
end
to_s() click to toggle source
# File debug-1.6.3/lib/debug/breakpoint.rb, line 72
def to_s
  s = ''.dup
  s << " if: #{@cond}"        if defined?(@cond) && @cond
  s << " pre: #{@command[1]}" if defined?(@command) && @command && @command[1]
  s << " do: #{@command[2]}"  if defined?(@command) && @command && @command[2]
  s
end