Skip to main content
Glama

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
NameRequiredDescriptionDefault
session_idNoSession ID

Implementation Reference

  • 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), }), }, ], }; } }
  • Input schema for 'step_over' tool: optional session_id string.
    { session_id: z.string().optional().describe('Session ID'), },
  • 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), }), }, ], }; } } );
  • 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); }
  • Top-level call to registerExecutionTools in registerAllTools, which includes the 'step_over' tool registration.
    registerExecutionTools(server, ctx.sessionManager);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kpanuragh/xdebug-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server