step_over
Execute the current line in PHP debugging and move to the next line without entering function calls, allowing you to progress through code while maintaining execution flow.
Instructions
Step over to the next line in the current scope. Function calls are executed but not stepped into.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | No | Session ID |
Implementation Reference
- src/tools/execution.ts:134-180 (handler)MCP tool handler for 'step_over': resolves debug session via sessionManager, calls session.stepOver(), handles errors, and returns formatted JSON response with status, file, line, and message.async ({ session_id }) => { const session = sessionManager.resolveSession(session_id); if (!session) { return { content: [ { type: 'text', text: JSON.stringify({ error: 'No active debug session' }), }, ], }; } try { const result = await session.stepOver(); return { content: [ { type: 'text', text: JSON.stringify({ status: result.status, file: result.file, line: result.line, message: result.status === 'break' ? `Stepped to ${result.file}:${result.line}` : `Status: ${result.status}`, }), }, ], }; } catch (error) { return { content: [ { type: 'text', text: JSON.stringify({ error: 'Step over failed', message: error instanceof Error ? error.message : String(error), }), }, ], }; } }
- src/tools/execution.ts:131-133 (schema)Input schema for 'step_over' tool: optional session_id string.{ session_id: z.string().optional().describe('Session ID'), },
- src/tools/execution.ts:128-181 (registration)Registration of the 'step_over' MCP tool via server.tool() call within registerExecutionTools function.server.tool( 'step_over', 'Step over to the next line in the current scope. Function calls are executed but not stepped into.', { session_id: z.string().optional().describe('Session ID'), }, async ({ session_id }) => { const session = sessionManager.resolveSession(session_id); if (!session) { return { content: [ { type: 'text', text: JSON.stringify({ error: 'No active debug session' }), }, ], }; } try { const result = await session.stepOver(); return { content: [ { type: 'text', text: JSON.stringify({ status: result.status, file: result.file, line: result.line, message: result.status === 'break' ? `Stepped to ${result.file}:${result.line}` : `Status: ${result.status}`, }), }, ], }; } catch (error) { return { content: [ { type: 'text', text: JSON.stringify({ error: 'Step over failed', message: error instanceof Error ? error.message : String(error), }), }, ], }; } } );
- src/session/session.ts:297-300 (helper)DebugSession.stepOver() helper method: sends DBGP 'step_over' command to the connection and processes the response via handleStepResponse.async stepOver(): Promise<{ status: DebugStatus; file?: string; line?: number }> { const response = await this.connection.sendCommand('step_over'); return this.handleStepResponse(response); }
- src/tools/index.ts:57-57 (registration)Top-level call to registerExecutionTools in registerAllTools, which includes the 'step_over' tool registration.registerExecutionTools(server, ctx.sessionManager);