# MARTe2 Universal Debugging & Observability Suite A professional-grade, zero-code-change debugging suite for the MARTe2 real-time framework. ## Features - **Runtime Registry Patching**: Instruments all MARTe2 Brokers automatically at startup. - **Hierarchical Tree Explorer**: Recursive visualization of the `ObjectRegistryDatabase`, including GAMs, DataSources, and Signals. - **Real-Time Execution Control**: Pause and Resume application logic globally to perform static inspection. - **High-Speed Telemetry**: Visual oscilloscope with sub-millisecond precision via UDP. - **Persistent Forcing**: Type-aware signal overrides (Last-Writer-Wins) with persistent re-application. - **Isolated Log Streaming**: Dedicated TCP channel for real-time framework logs to ensure command responsiveness. ## Components ### 1. C++ Core (`libmarte_dev.so`) The core service that handles registry patching, TCP/UDP communication, and real-time safe data capture. ### 2. Rust GUI Client (`marte_debug_gui`) A native, multi-threaded dashboard built with `egui`. - **Side Panel**: Collapsible application tree and signal navigator. - **Bottom Panel**: Advanced log terminal with Regex filtering and priority levels. - **Right Panel**: Active Trace and Force management. - **Central Pane**: High-frequency oscilloscope. ## Quick Start ### Build ```bash # Build C++ Core cd Build && cmake .. && make -j$(nproc) # Build GUI Client cd Tools/gui_client cargo build --release ``` ### Run 1. Start your MARTe2 application with the `DebugService` enabled. 2. Launch the GUI: ```bash ./Tools/gui_client/target/release/marte_debug_gui ``` ## Communication Ports - **8080 (TCP)**: Commands (TREE, FORCE, TRACE, PAUSE). - **8082 (TCP)**: Real-time framework logs. - **8081 (UDP)**: Signal telemetry data.