Passa al contenuto principale
Versione: 2025-26

Problemi comuni

Questa sezione include problemi che è frequente incontrare.

Come regola generale, in sede d'esame rispondiamo a tutte le domande relative a problemi di questo tipo e aiutatiamo a proseguire - perché sono relative all'ambiente d'esame e non ai concetti oggetto d'esame.

Per altre domande, si può sempre contattare per email o Teams.

Attenzione alla versione dell'ambiente

Le informazioni qui riportate sono relative all'ambiente 2025/26. L'ambiente degli anni precedenti ha dettagli diversi.

Setup dell'ambiente

1. Ho trovato un ambiente assembler per Mac su Github, ma ho problemi ad usarlo

Non abbiamo fatto noi quell'ambiente, non sappiamo come funziona e non offriamo supporto su come usarlo.

2. Ho trovato un ambiente basato su DOS, usato precedentemente all'esame, ma ho problemi ad usarlo

Ha probabilmente incontrato uno dei tanti motivi per cui l'ambiente basato su DOS è stato abbandonato. Questi problemi sono al più aggirabili, non risolvibili.

3. Lanciando il file assemble-workspace.code-workspace, mi appare un messaggio del tipo Unknown distro: reti-logiche-assembler

Il file assemble-workspace.code-workspace cerca di lanciare via WSL una immagine con lo specifico nome reti-logiche-assembler. Il nome dell'immagine si controlla con l'opzione --name reti-logiche-assembler del comando wsl --install.

Da un terminale Windows, lanciare wsl --list -v, dovreste ottenere una stampa del tipo

PS C:\Users\raffa> wsl --list -v
NAME STATE VERSION
* reti-logiche-assembler Stopped 2
Ubuntu-22.04 Stopped 2
Ubuntu-24.04 Stopped 2

La parte importante è la colonna NAME dell'immagine che vogliamo usare per l'ambiente assembler.

Nel caso la vostra installazione sia diversa, abbiamo due opzioni, o cambiare il nome dell'immagine, o modificare il file assemble-workspace.code-workspace.

Per modificare il nome dell'immagine dopo l'installazione, non c'è purtroppo un semplice comando WSL. Ci sono però metodi con strumenti open source, vedere qui.

Per la seconda opzione, modificare il file assemble-workspace.code-workspace con un editor di testo (notepad o VS Code stesso, stando attenti ad aprirlo come file di testo e non come workspace) sostituendo tutte le occorrenze di wsl+reti-logiche-assembler con wsl+NOME-DELLA-DISTRO. Per esempio, se volessi utilizzare l'immagine Ubuntu-24.04, sostituirei con wsl+Ubuntu-24.04.

4. Sto utilizzando una sistema Linux desktop, come uso l'ambiente senza virtualizzazione?

Utilizzando direttamente il pacchetto pensato per Linux desktop, e non quello per Windows + WSL. Vedere qui.

Uso dell'ambiente

5. Se premo Run su VS Code non viene lanciato il programma

Non è così che si usa l'ambiente di questo corso. Si deve usare un terminale, assemblare con ./assemble.ps1 programma.s e lanciare con ./programma.

6. Provando a lanciare ./assemble.ps1 programma.s ricevo un errore del tipo ./assemble.ps1: line 1: syntax error near unexpected token

State usando la shell da terminale sbagliata, bash invece che pwsh. Aprire un terminale Powershell da VS Code o utilizzare il comando pwsh.

7. Provando ad assemblare ricevo un warning del tipo warning: creating DT_TEXTREL in a PIE

Sostituire il file assemble.ps1 con quello contenuto nel pacchetto più recente tra i file del corso. Oppure modificare manualmente il file, alla riga 29, da

gcc -m32 -o ...

a

gcc -m32 -no-pie -o ...

Riprovare quindi a riassemblare. Se il warning non sparisce, scrivermi. Allegando il sorgente.

8. Provando ad assemblare ricevo un warning del tipo missing .note.GNU-stack section implies executable stack

Sostituire il file assemble.ps1 con quello contenuto nel pacchetto più recente tra i file del corso. Oppure modificare manualmente il file, alla riga 29, da

gcc -m32 -no-pie -o ...

a

gcc -m32 -no-pie -z execstack -o ...

Riprovare quindi a riassemblare. Se il warning non sparisce, scrivermi. Allegando il sorgente.

9. Ho modificato il codice per correggere un errore, ma quando assemblo e eseguo il codice, continuo a vedere lo stesso errore.

Controllare di aver salvato il file. In alto, nella barra delle tab, VS Code mostra un pallino pieno, al posto della X per chiedere la tab, per i file modificati e non salvati.

10. Dove trovo i file che scrivo nell'ambiente assembler?

La cartella assembler mostrata in VS Code corrisponde alla cartella C:/reti_logiche/assembler su Windows. Troveremo qui sia i file sorgenti (estensione .s) che i binari assemblati.

Windows può nascondere le estensioni dei file

Nella configurazione default, Windows nasconde le estensioni dei file "noti". Suggerisco di cambiare questa configurazione per mostrare sempre l'estensione, come indicato qui.