Contenuto

# Eseguire il debug di un programma Basic

## Punti di interruzione ed esecuzione a passo singolo

L'esecuzione a passo singolo permette di controllare riga per riga i programmi Basic. In questo modo è possibile identificare facilmente gli errori, poiché i risultati di ogni passo sono immediatamente visibili. Un puntatore nella colonna dei punti di interruzione dell'Editor indica la riga attiva. È possibile inoltre impostare un punto di interruzione di propria scelta per forzare l'interruzione del programma in un punto specifico.

Facendo doppio clic nella colonna dei punti di interruzione, sul lato sinistro della finestra dell'Editor, si può inserire o rimuovere un punto di interruzione nella riga corrispondente. Quando il programma raggiunge un punto di interruzione, la sua esecuzione viene interrotta.

L'esecuzione a passo singolo attivata con l'icona Passo singolo produce la scomposizione del programma in procedure e funzioni.

Nell'esecuzione attivata con l'icona Passo di procedura , le procedure e le funzioni vengono considerate come singoli passaggi.

### Proprietà di un punto di interruzione

Le proprietà dei punti di interruzione sono accessibili dal menu contestuale, che viene aperto facendo clic col pulsante destro del mouse nel punto corrispondente nella colonna dei punti di interruzione.

Per attivare o disattivare un punto di interruzione, selezionare Attivo dal menu contestuale. I punti di interruzione disattivati non interrompono l'esecuzione del programma.

Selezionando Proprietà dal menu contestuale di un punto di interruzione, o scegliendo Punti di interruzione dal menu contestuale della colonna dei punti di interruzione, si apre la finestra di dialogo Punti di interruzione, in cui è possibile specificare altre opzioni per i punti di interruzione.

L'elenco visualizza tutti ipunti di interruzione con il numero di riga corrispondente nel codice sorgente. Per attivare o disattivare un punto di interruzione, selezionare o deselezionare la casella Attivo corrispondente.

L'opzione Passaggi specifica il numero di volte in cui è possibile attraversare il punto di interruzione prima che il programma venga interrotto. Inserendo il valore 0 (impostazione predefinita), il programma si interrompe ogni volta che incontra un punto di interruzione.

Fare clic su Elimina per rimuovere fisicamente il punto di interruzione dal programma.

## Osservare il valore delle variabili

Per monitorarne i valori, è possibile aggiungere una variabile alla finestra Controllo. Per aggiungere una voce all'elenco delle variabili controllate, digitare il nome della variabile nella casella di testo Controllo e premere Invio.

I valori delle variabili compaiono solo se si trovano nel codice visualizzato. Le variabili che non sono definite nella parte visualizzata del codice sorgente presentano l'indicazione ("Out of Scope") al posto del valore.

La finestra Controllo accetta anche le matrici (array). Se si inserisce il nome di una variabile a matrice senza specificare un indice nella casella di testo Controllo, viene visualizzato il contenuto dell'intera matrice.

Posizionando il mouse su una variabile predefinita nell'Editor durante l'esecuzione, il suo contenuto viene visualizzato in una casella a comparsa.

## Usare la finestra Stack delle chiamate (Call Stack)

Questa finestra presenta una panoramica della gerarchia di chiamate alle procedure e alle funzioni. È possibile così determinare quali procedure e funzioni abbiano chiamato altre procedure e funzioni nel punto corrente del codice sorgente.

## Lista errori di runtime

1 Si è verificata un'eccezione

2 Errore di sintassi

3 Return senza Gosub

4 Digitazione errata; riprovare

5 Richiamo di procedura non valido

6 Overflow

7 Memoria insufficiente

8 Matrice già dimensionata

9 Indice al di fuori dell'area definita.

10 Definizione doppia

11 Divisione per zero

12 Variabile non definita

13 Tipi di dati non corrispondenti

14 Parametro non valido

18 Processo interrotto dall'utente

20 Resume senza errori

28 Memoria dello stack insufficiente

35 Sottoprocedura o funzione non definita

48 Errore nel caricamento del file DLL

49 Convenzione di chiamata DLL errata

51 Errore interno

52 Nome file o numero file errato

53 File non trovato

54 Modo file errato

55 File già aperto

57 Errore di I/O sul dispositivo

58 Il file esiste già

59 Lunghezza record di dati errata

61 Dischetto o disco rigido pieno

62 Lettura oltre la fine del file

63 Numero record errato

67 Troppi file

68 Dispositivo non disponibile

70 Accesso negato

71 Disco non pronto

73 Non implementato

74 Impossibile rinominare su drive diversi

75 Errore di accesso al percorso/file

76 Percorso non trovato

91 Variabile dell'oggetto non impostata

93 Modello di caratteri non valido

94 Uso dello zero non ammesso

250 Errore DDE

280 In attesa di risposta nel collegamento DDE

281 Nessun canale DDE libero

282 Nessuna applicazione ha risposto all'avvio del collegamento DDE

283 Troppe applicazioni hanno risposto al collegamento DDE desiderato

284 Canale DDE bloccato

285 L'applicazione esterna non può eseguire l'operazione DDE

286 Tempo scaduto per la risposta DDE

287 L'utente ha premuto ESC durante l'operazione DDE

288 L'applicazione esterna è occupata

289 Operazione DDE senza dati

290 I dati hanno un formato errato

291 L'applicazione esterna è stata terminata

292 Collegamento DDE interrotto o modificato

293 Metodo DDE richiamato senza un canale DDE aperto

294 Formato collegamento DDE non valido

295 Il messaggio DDE è andato perduto

296 Collegamento già incollato

297 Argomento di collegamento non valido; impossibile impostare la modalità del collegamento

298 DDE richiede il file DDEML.DLL

323 Formato non valido; impossibile caricare il modulo

341 Indice di oggetto non valido

366 Oggetto non disponibile

380 Valore per la proprietà errato

382 La proprietà è di sola lettura

394 La proprietà è di sola scrittura

420 Riferimento a oggetto non valido

423 Proprietà o metodo non trovato

424 È necessario un oggetto

425 Utilizzo non valido di un oggetto

430 L'automazione OLE non è supportata dall'oggetto

438 L'oggetto non supporta la proprietà o il metodo

440 Errore nell'automazione OLE

445 Azione non supportata dall'oggetto specificato

446 Gli argomenti indicati non sono supportati dall'oggetto specificato

447 L'oggetto indicato non supporta le attuali impostazioni locali

448 Impossibile trovare l'argomento indicato

449 L'argomento non è opzionale

450 Numero di argomenti non valido

451 L'oggetto non è un elenco

452 Numero ordinale non valido

453 Impossibile trovare la funzione DLL specificata

460 Formato appunti non valido

951 Simbolo inatteso:

952 Atteso:

953 Era previsto un simbolo

954 Era prevista una variabile

955 Era prevista un'etichetta

956 Impossibile applicare il valore

957 Variabile già definita

958 Sottoprocedura o funzione già definita

959 Etichetta già definita

960 Variabile non trovata

961 Matrice o procedura non trovata

962 Procedura non trovata

963 Etichetta non definita

964 Tipo di dati sconosciuto

965 Exit previsto

966 Blocco di istruzioni ancora aperto: non presente

967 Errore nelle parentesi

968 Simbolo già definito diversamente

969 I parametri non corrispondono alla procedura

970 Carattere non valido nel numero

971 La matrice deve essere dimensionata

972 Else/Endif senza If

973 non ammesso all'interno di una procedura

974 non ammesso al di fuori di una procedura

975 I dati sulle dimensioni non corrispondono

976 Opzione sconosciuta:

977 Costante ridefinita

978 Il programma è troppo grande

979 Stringhe o matrici non consentite

1000 L'oggetto non dispone di questa proprietà

1001 L'oggetto non dispone di questo metodo

1002 Argomento richiesto mancante

1003 Numero di argomenti non valido

1004 Errore nell'esecuzione di un metodo

1005 Impossibile impostare la proprietà

1006 Impossibile individuare la proprietà