gdb_set_breakpoint
Set breakpoints during GDB debugging sessions by specifying a session ID and location, enabling precise control over code execution for debugging workflows.
Instructions
Set a breakpoint
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| condition | No | Breakpoint condition (optional) | |
| location | Yes | Breakpoint location (e.g., function name, file:line) | |
| sessionId | Yes | GDB session ID |
Implementation Reference
- src/index.ts:750-804 (handler)The handler function that implements the gdb_set_breakpoint tool. It checks for an active GDB session, executes the 'break' command at the specified location, optionally sets a condition on the breakpoint by parsing the breakpoint number from output, and returns the result or error.private async handleGdbSetBreakpoint(args: any) { const { sessionId, location, condition } = args; if (!activeSessions.has(sessionId)) { return { content: [ { type: 'text', text: `No active GDB session with ID: ${sessionId}` } ], isError: true }; } const session = activeSessions.get(sessionId)!; try { // Set breakpoint let command = `break ${location}`; const output = await this.executeGdbCommand(session, command); // Set condition if provided let conditionOutput = ''; if (condition) { // Extract breakpoint number from output (assumes format like "Breakpoint 1 at...") const match = output.match(/Breakpoint (\d+)/); if (match && match[1]) { const bpNum = match[1]; const conditionCommand = `condition ${bpNum} ${condition}`; conditionOutput = await this.executeGdbCommand(session, conditionCommand); } } return { content: [ { type: 'text', text: `Breakpoint set at: ${location}${condition ? ` with condition: ${condition}` : ''}\n\nOutput:\n${output}${conditionOutput ? '\n' + conditionOutput : ''}` } ] }; } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); return { content: [ { type: 'text', text: `Failed to set breakpoint: ${errorMessage}` } ], isError: true }; } }
- src/index.ts:183-204 (schema)The input schema for the gdb_set_breakpoint tool, defining the required parameters sessionId and location, and optional condition parameter.{ name: 'gdb_set_breakpoint', description: 'Set a breakpoint', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'GDB session ID' }, location: { type: 'string', description: 'Breakpoint location (e.g., function name, file:line)' }, condition: { type: 'string', description: 'Breakpoint condition (optional)' } }, required: ['sessionId', 'location'] } },
- src/index.ts:373-374 (registration)The switch case in the CallToolRequestSchema handler that registers and routes calls to the gdb_set_breakpoint handler function.case 'gdb_set_breakpoint': return await this.handleGdbSetBreakpoint(request.params.arguments);