# 7. Trace del protocollo

**Trace del protocollo** apre a destra il pannello con ogni frame scambiato col server: ◀ quello che
arriva, ▶ quello che parte, · gli eventi (sessione aperta, chiusa, macro non gestite). Serve a
capire cosa il programma chiede e cosa il client risponde, senza il log del client legacy. Il
livello, in alto a sinistra, dice quanto scrivere e si ricorda nel browser:

| livello | cosa scrive |
|---|---|
| 0 | niente: trace spento |
| 1 | solo gli eventi (sessione, errori, avvisi), nessun frame |
| 2 | anche una riga per frame: `MCCB func=… subf=… optn=… retn=… name="…" dati=… sicb=…` e i byte |
| 3 | anche il **dump esadecimale** di ogni frame: offset, 16 byte in esadecimale, gli stessi in testo |

Il trace scrive solo da quando e' acceso: per vedere l'avvio della funzione si accende dal menu,
**prima** di avviare. La casella **Filtra** tiene le righe che contengono il testo (una macro, il
nome di una maschera) e il contatore dice quante sono su quante; **Scarica** salva un `.txt` con le
righe **filtrate** (come il `000.txt` del log legacy) col nome `sbh-trace-AAAAMMGG-hhmmss.txt`
in ora locale; il cestino svuota. Le righe lunghe vanno a capo dentro il pannello; il dump
esadecimale, che a capo non si leggerebbe, scorre in orizzontale dentro la sua riga.

![Trace al livello 3, con il dump esadecimale dell'avvio](https://gsdoc.genesyssoftware.eu/uploads/images/gallery/2026-10/scaled-1680-/trace-al-livello-3-con-il-dump-esadecimale-dellavvio.png)

✔ Verifica: al livello 3 sotto le righe dei frame c'e' il dump esadecimale.

✔ Verifica: ci sono righe in arrivo (◀) e in partenza (▶).

✔ Verifica: nessuna riga esce a destra del pannello: le righe lunghe vanno a capo.

✔ Verifica: filtrando per il nome della griglia `20000DTB2-200` restano meno righe, tutte con quel
nome, e il contatore dice «N / totale».

✔ Verifica: **Scarica** salva `sbh-trace-AAAAMMGG-hhmmss.txt` con la data di oggi e l'ora locale,
e il file contiene solo le righe filtrate.

✔ Verifica: al livello 2, aprendo e chiudendo l'archivio stampe, compaiono righe `func=` senza dump.

✔ Verifica: al livello 1, la stessa apertura dell'archivio non scrive nessun frame.

✔ Verifica: al livello 0, svuotato, il pannello dice «Trace spento.».