49 lines
1.8 KiB
Markdown
49 lines
1.8 KiB
Markdown
# 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.
|