Files
marte-debug/README.md
Martino Ferrari 5ef0efe7d6 Initial commit
2026-02-21 00:58:56 +01:00

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.