|
<< Click to Display Table of Contents >> Navigation: ASA-EMulatR Reference Guide > Introduction > Architecture Overview > Chapter 21 – Debugging, Tracing, and Determinism > 21.6 LogReader Diagnostic Application |
The LogReader is a separate Qt-based GUI application (tools/LogReader/) that provides real-time diagnostic monitoring of the running emulator. It connects to the emulator via a TCP socket server, receiving structured log records in real time.
LogReader features: live filtering by component and log level (show/hide specific subsystems such as IBox, MBox, CBox, PAL, FaultDispatcher, IRQPendingState), source-based filtering (device name, CPU ID), severity-level filtering, full-text search across log history, and real-time streaming display. The LogReader is built as a standalone executable (LogReader_GUI.h, LogReader_Complete.cpp) linked against Qt6::Core, Qt6::Widgets, and Qt6::Network.
The emulator exposes system-level diagnostic APIs: ExecutionCoordinator::getSystemStatus() provides a full system diagnostic summary, getCPUStatus(cpuId) provides per-CPU state, and CPUStateManager::getAllCPUStatesString() provides a snapshot of all CPU states (Running, Halted, Waiting, Quiesced, Reset). SPAM TLB cache statistics are accessible via dumpSPAMStats(cpuId) reporting hits, misses, and evictions.
See Also: tools/LogReader/ (LogReader_GUI.h, LogReader_Complete.cpp).