setBreakpoint
Set a breakpoint in Go programs during debugging sessions to pause execution at specific lines and inspect code behavior.
Instructions
Set a breakpoint in the debugged program
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | ID of the debug session | |
| file | Yes | File path where to set the breakpoint | |
| line | Yes | Line number for the breakpoint | |
| condition | No | Optional condition for the breakpoint |
Implementation Reference
- src/handlers/control.ts:15-37 (handler)Executes the setBreakpoint tool: destructures args for file, line, condition; sends CreateBreakpoint command to Delve session; creates and stores Breakpoint object; returns success message.case "setBreakpoint": { const { file, line, condition } = args; const response = await sendDelveCommand(session, "CreateBreakpoint", { file, line, cond: condition }); const bp: Breakpoint = { id: response.id, file, line, condition }; session.breakpoints.set(bp.id, bp); return { content: [{ type: "text", text: `Set breakpoint ${bp.id} at ${file}:${line}` }] }; }
- src/server.ts:138-162 (schema)Defines the input schema and metadata for the setBreakpoint tool, specifying required parameters sessionId, file, line and optional condition.name: "setBreakpoint", description: "Set a breakpoint in the debugged program", inputSchema: { type: "object", properties: { sessionId: { type: "string", description: "ID of the debug session" }, file: { type: "string", description: "File path where to set the breakpoint" }, line: { type: "number", description: "Line number for the breakpoint" }, condition: { type: "string", description: "Optional condition for the breakpoint" } }, required: ["sessionId", "file", "line"] } },
- src/server.ts:411-413 (registration)Routes calls to the setBreakpoint tool (and other control tools) to the handleControlCommands function within the CallToolRequestSchema handler.if (["setBreakpoint", "removeBreakpoint", "continue", "next", "step", "stepout", "variables", "evaluate"].includes(name)) { return handleControlCommands(name, args); }