3.1 Component Diagram

┌─────────────────────────────────────────────┐
│             Debugging System                   │
├─────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐          │
│  │  Debug      │  │  Profiler   │          │
│  │  Output     │  │             │          │
│  └──────┬──────┘  └──────┬──────┘          │
│         │                │                 │
│  ┌──────▼────────────────▼─────────────┐   │
│  │           Debug Backends                 │   │
│  │  ┌──────────┐ ┌──────────┐ ┌────────┐ │   │
│  │  │  Screen  │ │  Serial  │ │  File   │ │   │
│  │  │  Output  │ │  Output  │ │  Output │ │   │
│  │  └──────────┘ └──────────┘ └────────┘ │   │
│  └─────────────────────────────────────────┘   │
├─────────────────────────────────────────────┤
│  ┌─────────────────────────────────────────┐ │
│  │           Debug Utilities                  │ │
│  │  ┌──────────┐ ┌──────────┐ ┌──────────┐  │ │
│  │  │  Assert  │ │  Memory  │ │  Error   │  │ │
│  │  │          │ │  Tracker │ │  Handler │  │ │
│  │  └──────────┘ └──────────┘ └──────────┘  │ │
│  └─────────────────────────────────────────┘ │
└─────────────────────────────────────────────┘