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

1.8 KiB

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

# 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:
    ./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.