|
<< Click to Display Table of Contents >> Navigation: ASA-EMulatR Reference Guide > Introduction > Architecture Overview > Chapter 21 – Debugging, Tracing, and Determinism > 21.11 Repository Directory Mapping |
The debugging, tracing, and determinism infrastructure spans the following locations:
Location |
Key Files |
Responsibility |
|---|---|---|
coreLib/ |
ExecTrace.h (EXECTRACE macros, PalEntryReasonTrace, WriteEntry) |
Compile-time-controlled instrumentation macros, structured trace record types |
tools/LogReader/ |
LogReader_GUI.h, LogReader_Complete.cpp |
Real-time diagnostic GUI application with TCP socket connection, live filtering, severity-level display |
emulatrLib/ |
ExecutionCoordinator.h (getSystemStatus, getCPUStatus) |
System-level diagnostic APIs, deterministic scheduling coordination |
Per-subsystem |
DEBUG_LOG / DEBUG_LOG_CONTEXT calls throughout all subsystems |
Component-tagged diagnostic logging with CPU ID, subsystem identification, severity levels |
Compile flag |
AXP_INSTRUMENTATION_TRACE |
Master compile-time switch for EXECTRACE macro activation — when undefined, all macros compile to zero-cost no-ops |
The tracing infrastructure is deliberately lightweight: ExecTrace.h defines the macro interface and data types, while the actual trace emission is distributed across every subsystem that produces architecturally significant events. The LogReader application is a standalone tool that does not link against the emulator core — it connects via TCP socket, maintaining the observational-only guarantee.
See Also: Chapter 14 – Execution Domains (“Boxes”) (per-box tracing integration); Chapter 13 – AlphaPipeline Implementation (pipeline-level tracing); Chapter 22 – Testing, Validation, and Architectural Compliance (how tracing supports the verification strategy).