debugger_status
Check available debuggers to monitor program execution and analyze binary states during debugging sessions.
Instructions
Get status of available debuggers.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- server.py:42-45 (handler)The debugger_status() function is the MCP tool handler that returns status of available debuggers. It's registered with the @mcp.tool() decorator and calls DebuggerFactory.list_debuggers() to get the formatted output.
@mcp.tool() def debugger_status() -> str: """Get status of available debuggers.""" return DebuggerFactory.list_debuggers() - modules/debuggerFactory.py:105-116 (helper)The list_debuggers() static method formats a human-readable list of available debuggers by calling get_available_debuggers() and creating a formatted string with status indicators (✓/✗) for each debugger type.
def list_debuggers() -> str: """Get a formatted list of available debuggers.""" available = DebuggerFactory.get_available_debuggers() lines = ["Available debuggers:"] for debugger_type, info in available.items(): status = "✓ Available" if info['available'] else "✗ Not available" lines.append(f" • {debugger_type.upper()}: {info['name']} - {status}") if info['description']: lines.append(f" {info['description']}") return "\n".join(lines) - modules/debuggerFactory.py:14-28 (helper)The get_available_debuggers() static method checks which debuggers (GDB and LLDB) are available on the system by calling their respective is_available() methods and returns a dictionary with availability status, names, and descriptions.
@staticmethod def get_available_debuggers() -> dict: """Get information about available debuggers.""" return { 'gdb': { 'available': GDBSessionManager.is_available(), 'name': 'GNU Debugger (GDB)', 'description': 'Traditional Unix debugger' }, 'lldb': { 'available': LLDBSessionManager.is_available(), 'name': 'LLVM Debugger (LLDB)', 'description': 'Modern LLVM-based debugger (macOS native)' } } - modules/gdb/sessionManager.py:92-100 (helper)The is_available() static method for GDB checks if GDB is installed by running 'gdb --version' subprocess command and returns True if the command succeeds (returncode == 0).
@staticmethod def is_available() -> bool: """Check if GDB is available on this system.""" import subprocess try: result = subprocess.run(['gdb', '--version'], capture_output=True, timeout=5) return result.returncode == 0 except (FileNotFoundError, subprocess.TimeoutExpired): return False - The is_available() static method for LLDB returns the LLDB_AVAILABLE global flag, which is set during module initialization when the LLDB Python module is successfully imported.
@staticmethod def is_available() -> bool: """Check if LLDB is available on this system.""" return LLDB_AVAILABLE