Mozdebug Library

0.4.0 · active · verified Fri Apr 17

Mozdebug provides utilities for running applications under native code debuggers, primarily intended for use within Mozilla testing workflows. It offers a Python client to interact with Mozilla's custom debug protocol. The current version is 0.4.0. Its release cadence appears infrequent, typically tied to specific Mozilla project requirements.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to instantiate and attempt to connect a `MozDebugClient` to a running debug server. It includes basic error handling for a `ConnectionRefusedError`, which is common if no server is active. Ensure a debug server compatible with Mozilla's protocol is running at the specified host and port for a successful connection.

import os
from mozdebug.client import MozDebugClient

# In a real scenario, you would launch a debug server (e.g., rr, gdbserver)
# and configure it to listen on a host/port, then connect to it.
# This example just demonstrates the client instantiation and connection attempt.
# A ConnectionRefusedError is expected if no server is running at the specified address.

try:
    # Attempt to connect to a debug server.
    # Replace 'localhost' and 9000 with your server's actual host and port.
    client = MozDebugClient(host=os.environ.get('DEBUG_SERVER_HOST', 'localhost'),
                           port=int(os.environ.get('DEBUG_SERVER_PORT', 9000)))
    print(f"Attempting to connect to {client.host}:{client.port}...")
    client.connect()
    print("Successfully connected to debug server.")

    # In a real application, you would now interact with the debug client, e.g.,
    # client.attach_to_process(pid), client.continue_execution(), client.get_stack().

    # Example: Disconnect
    client.disconnect()
    print("Disconnected.")

except ConnectionRefusedError:
    print("Could not connect to the debug server. Ensure a debug server (e.g., rr, gdbserver) is running and listening on the specified host/port.")
except Exception as e:
    print(f"An unexpected error occurred: {e}")

view raw JSON →