graph LR
Debugged_Application["Debugged Application"]
Framework_Integration_Layer["Framework Integration Layer"]
WDB_Debugging_Agent["WDB Debugging Agent"]
WDB_Server_Core["WDB Server Core"]
WDB_Web_Client_UI_["WDB Web Client (UI)"]
Debugged_Application -- "is instrumented by" --> WDB_Debugging_Agent
Debugged_Application -- "provides runtime data to" --> WDB_Debugging_Agent
Framework_Integration_Layer -- "integrates WDB Debugging Agent into" --> Debugged_Application
WDB_Debugging_Agent -- "sends debugging events to" --> WDB_Server_Core
WDB_Debugging_Agent -- "receives commands from" --> WDB_Server_Core
WDB_Server_Core -- "sends formatted data to" --> WDB_Web_Client_UI_
WDB_Web_Client_UI_ -- "sends user commands to" --> WDB_Server_Core
click Framework_Integration_Layer href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/wdb/Framework_Integration_Layer.md" "Details"
click WDB_Server_Core href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/wdb/WDB_Server_Core.md" "Details"
click WDB_Web_Client_UI_ href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/wdb/WDB_Web_Client_UI_.md" "Details"
The wdb project is designed as a distributed Python debugger, enabling real-time debugging of applications through a web-based interface. Its architecture is composed of several key components that interact to provide a comprehensive debugging experience. The Debugged Application is the external target, instrumented by the WDB Debugging Agent which resides within it. The Framework Integration Layer facilitates this instrumentation for various web and testing frameworks. All debugging data and commands are routed through the WDB Server Core, which acts as a central hub, communicating with both the agents and the WDB Web Client (UI). The UI provides the interactive interface for users to control and observe the debugging process.
The external application whose execution flow and runtime data are being monitored and controlled by wdb. This component does not have direct source code within the wdb project as it represents the user's application being debugged.
Related Classes/Methods: None
Framework Integration Layer [Expand]
Provides the necessary hooks and middleware to seamlessly integrate the WDB Debugging Agent into specific Python web frameworks (e.g., Flask, Django) or testing frameworks (e.g., Pytest).
Related Classes/Methods:
pytest_wdb.pytest_addoptionpytest_wdb.pytest_configurepytest_wdb.Traceclient.wdb.ext.WdbMiddleware:141-234client.wdb.ext.wdb_tornado:237-304
Resides within the Debugged Application, responsible for instrumenting code, controlling execution (breakpoints, stepping), collecting debugging data (variables, stack traces), and communicating with the WDB Server Core.
Related Classes/Methods:
client.wdb.Wdbclient.wdb.breakpoint.Breakpoint:31-68client.wdb.breakpoint.LineBreakpoint:71-96client.wdb.breakpoint.ConditionalBreakpoint:99-132client.wdb.breakpoint.FunctionBreakpoint:135-164client.wdb.ui.Interaction:97-957client.wdb.state.State:4-18client.wdb.state.Running:21-25client.wdb.state.Step:28-32client.wdb.state.Next:35-39client.wdb.state.Until:42-50client.wdb.state.Return:53-57
WDB Server Core [Expand]
The central component managing multiple debugging sessions, routing real-time communication (via WebSockets) between WDB Debugging Agents and WDB Web Clients, and maintaining global debugging state.
Related Classes/Methods:
WDB Web Client (UI) [Expand]
The interactive, browser-based user interface that allows users to send commands, view debugging data, and control the debugging process in real-time. It communicates directly with the WDB Server Core.
Related Classes/Methods: