graph LR
Interaction_Loop_Manager["Interaction Loop Manager"]
Command_Parser["Command Parser"]
Output_Renderer["Output Renderer"]
Expression_Evaluator["Expression Evaluator"]
Context_Providers["Context Providers"]
Command_Handlers["Command Handlers"]
Error_Handlers["Error Handlers"]
Interaction_Loop_Manager -- "initiates calls to" --> Command_Parser
Interaction_Loop_Manager -- "initiates calls to" --> Output_Renderer
Interaction_Loop_Manager -- "initiates calls to" --> Context_Providers
Interaction_Loop_Manager -- "initiates calls to" --> Error_Handlers
Command_Parser -- "provides parsed commands to" --> Command_Handlers
Command_Handlers -- "sends data to" --> Output_Renderer
Command_Handlers -- "invokes" --> Expression_Evaluator
Command_Handlers -- "queries" --> Context_Providers
Command_Handlers -- "calls" --> Error_Handlers
Error_Handlers -- "utilizes" --> Output_Renderer
Context_Providers -- "provides real-time debugging information to" --> Interaction_Loop_Manager
Context_Providers -- "provides real-time debugging information to" --> Command_Handlers
The WDB Web Client (UI) subsystem is primarily defined by the components within the client/wdb/ui directory. It represents the interactive, browser-based user interface. Its external boundary for communication is with the WDB Server Core, facilitated by server-side components like server.coffees.wdb.Wdb and server.coffees._websocket.Websocket, which handle the WebSocket communication channel.
Orchestrates the main interaction cycle of the UI, continuously fetching user input and updating the display. It acts as the central coordinator for client-side activities, embodying the real-time interaction aspect of the debugging tool.
Related Classes/Methods:
Parses raw user input received from the UI into structured commands that can be processed by the system. This component ensures a clear separation of concerns by isolating input interpretation.
Related Classes/Methods:
Centralized function for displaying all forms of debugging output (e.g., variable values, messages, errors) to the user interface. It is crucial for presenting the real-time state of the debugging session to the user.
Related Classes/Methods:
Executes Python code snippets or expressions provided by the user within the current debugging scope, typically by sending them to the server for evaluation. This is a core interactive feature of a debugging tool.
Related Classes/Methods:
Provide the UI with real-time information about the execution state of the debugged program (e.g., current file, execution frame, local and global variables). This data is typically fetched from the WDB Server Core, supporting real-time interaction and centralized session management.
Related Classes/Methods:
client.wdb.ui.current_file:161-163client.wdb.ui.current_frame:153-155client.wdb.ui.current_locals:157-159client.wdb.ui.get_globals:165-181
Each method implements the specific logic for a user command, translating UI actions into requests sent to the WDB Server Core and processing the responses. These handlers are the direct interface between user intent and the debugging backend, reflecting the client-server and event-driven architecture.
Related Classes/Methods:
client.wdb.ui.do_start:296-334client.wdb.ui.do_break:585-634client.wdb.ui.do_eval:421-550client.wdb.ui.do_step:555-557client.wdb.ui.do_jump:658-675client.wdb.ui.do_dump:399-416client.wdb.ui.do_display:786-812client.wdb.ui.do_diff:835-893client.wdb.ui.do_find:895-934client.wdb.ui.do_next:559-561client.wdb.ui.do_continue:563-566client.wdb.ui.do_inspect:351-397
Ensure that errors and exceptions encountered within the UI are gracefully handled and communicated to the user. This is vital for a robust debugging tool, providing clear feedback during unexpected situations.
Related Classes/Methods: