Class: DebugMcp::Tools::RemoveBreakpoint

Inherits:
MCP::Tool
  • Object
show all
Defined in:
lib/debug_mcp/tools/remove_breakpoint.rb

Class Method Summary collapse

Class Method Details

.call(all: nil, breakpoint_number: nil, file: nil, line: nil, method: nil, exception_class: nil, session_id: nil, server_context:) ⇒ Object



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/debug_mcp/tools/remove_breakpoint.rb', line 64

def call(all: nil, breakpoint_number: nil, file: nil, line: nil, method: nil, exception_class: nil, session_id: nil, server_context:)
  client = server_context[:session_manager].client(session_id)
  manager = server_context[:session_manager]
  client.auto_repause!

  if all
    remove_all_breakpoints(client, manager)
  elsif exception_class
    remove_catch_breakpoint(client, manager, exception_class)
  elsif method
    remove_method_breakpoint(client, manager, method)
  elsif file && line
    remove_by_location(client, manager, file, line)
  elsif breakpoint_number
    output = client.send_command("delete #{breakpoint_number}")
    MCP::Tool::Response.new([{ type: "text", text: output }])
  else
    MCP::Tool::Response.new([{ type: "text",
      text: "Error: Provide 'all: true', 'file' + 'line', 'method', 'exception_class', or 'breakpoint_number'." }])
  end
rescue DebugMcp::Error => e
  MCP::Tool::Response.new([{ type: "text", text: "Error: #{e.message}" }])
end