Autore Topic: [Risolto] Debug  (Letto 1338 volte)

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.725
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
[Risolto] Debug
« il: 05 Agosto 2019, 13:53:14 »
 :ciao:
Stavo guardando l'istruzione DEBUG e onestamente non ho capito a cosa serva.
A differenza di PRINT, DEBUG indica la sua posizione all'interno del codice.
Nella documentazione appare questa indicazione:
Citazione
Prints expressions to the standard error output, only if your program is compiled with debugging informations.
E qui non capisco cosa si intenda per "only if your program is compiled with debugging informations". :-\
Pensavo di trovare uno switch per compilare il pogramma con o senza le informazioni di debugging, ma non l'ho trovato.
Pensavo anche che compilando un programma per riga di comando, utilizzando DEBUG, l'output del debug non venisse scritto nel terminale esterno (quello di esecuzione) ma solo in quello dell'IDE. Ma anche qui pensavo male!
Ho notato che anche sul forum spagnolo hanno gli stessi dubbi!  :'(
Qualcuno ha qualche spunto da darmi?

PS.:Non parliamo poi del componente gb.Debug!!! Lì è ancora più bello! ;D
« Ultima modifica: 07 Agosto 2019, 09:30:07 da kicco »
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.239
  • Tonno verde
    • Mostra profilo
Re:Debug
« Risposta #1 il: 05 Agosto 2019, 15:24:02 »
A me sembra molto semplice, basta leggere qui:
http://gambaswiki.org/wiki/lang/debug?l=it
Se stampi solo PRINT l'output non scrive nulla, mentre se stampi DEBUG ti indica la posizione sono la stessa cosa con questa differenza.
Non c'è nulla di particolare dietro  :-\
Alcuni componenti hanno una proprietà Debug tipo DB.Debug (http://gambaswiki.org/wiki/comp/gb.db/db/debug) e Report.Debug (http://gambaswiki.org/wiki/comp/gb.report/report/debug) che ti permettono di vedere cosa succede dietro le quinte.

Riguardo gb.debug ti rimando alla risposta di Benoit a Tobias:
https://lists.gambas-basic.org/pipermail/user/2010-May/029603.html

 :ciao: :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.725
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Debug
« Risposta #2 il: 05 Agosto 2019, 15:44:58 »
 :ciao:
Grazie Gianluigi,
Citazione
A me sembra molto semplice, basta leggere qui:
http://gambaswiki.org/wiki/lang/debug?l=it
Forse sono un po' tardo, ma io capisco una cosa diversa e soprattutto nella documentazione non trovo riferimenti alla proprietà debug di cui tu parli!
Poi sulla questione:
Citazione
Riguardo gb.debug ti rimando alla risposta di Benoit a Tobias:
https://lists.gambas-basic.org/pipermail/user/2010-May/029603.html
Beh è ben bella la risposta di Benoit!
Ma perchè non lo scrive nella documentazione del componente? Boh! Invece "rimprovera" il povero Tobias:
Perchè vuoi usare questo componente?...  :nonono: :nonono: :nonono:
 :) :) :)
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.239
  • Tonno verde
    • Mostra profilo
Re:Debug
« Risposta #3 il: 05 Agosto 2019, 17:45:42 »
... io capisco una cosa diversa e soprattutto nella documentazione non trovo riferimenti alla proprietà debug di cui tu parli!

La notizia sulle proprietà Debug nei componenti esula e non ha niente a che vedere con la parola chiave, l'ho inserita come un di più solo per conoscenza, come tu hai citato gb.debug.
La documentazione spiega chiaramente cosa fa DEBUG che, ripeto, è come PRINT ma aggiunge la posizione, cosa c'è da capire di diverso?
Perché quando le cose sono molto semplici e facili da comprendere allora ci sembra di aver perso qualcosa di recondito e averne smarrito il "vero" senso?

 :ciao: :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.725
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Debug
« Risposta #4 il: 05 Agosto 2019, 21:13:20 »
Citazione
Perché quando le cose sono molto semplici e facili da comprendere allora ci sembra di aver perso qualcosa di recondito e averne smarrito il "vero" senso?
No, non è quello, pensavo fosse un po' più raffinato e invece no!  :-\
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.239
  • Tonno verde
    • Mostra profilo
Re:Debug
« Risposta #5 il: 05 Agosto 2019, 23:55:07 »
No, non è quello, pensavo fosse un po' più raffinato e invece no!  :-\
Direi che è ingeneroso da parte tua.
Il debugger di Gambas è parecchio sofistico e ci permette di seguire il codice del nostro programma passo passo, valutarne le espressioni durante l'esecuzione.
Controllare lo stack ecc.

Non è facilissimo da usare compiutamente ma basta allenarsi:
Ad esempio con MAIUSC+F5 esegui il codice fino alla riga corrente e con MAIUSC+F8 esegui fino alla riga successiva all'interno della funzione.

Comunque se ti vanno cose più difficili da fare e con risultati non certo superiori a quelli della IDE, ti propongo un esperimento da sviluppare:
Ti crei un piccolo progetto a riga di comando (che funzioni ma anche no).
Poi apri un terminale nella cartella che contiene il progetto Gambas e digiti:
gbx3 -g nome del programma
Ti verrà dato il benvenuto nel Gambas degugger e il prompt cambia in >
Al promp puoi scrivere: step e dare invio poi bastano solo invii fino alla fine del programma.
Con q esci in qualunque punto.
Puoi anche partire con Sub Main senza e con () e proseguire sempre con invii.

Buon divertimento  :ciao:
« Ultima modifica: 05 Agosto 2019, 23:55:38 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.725
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Debug
« Risposta #6 il: 06 Agosto 2019, 09:07:12 »
Citazione
Direi che è ingeneroso da parte tua.
Dai,non farmi sembrare un mostro... Mi riferivo solo all'istruzione DEBUG non al dubugging in generale di Gambas3!
Speravo di poter vedere sullo standard output i messaggi di DEBUG (istruzione) solo volendo.
Ma direi che il "problema" finisce qui.
Grazie sempre per la tua pazienza e disponibilità, proseguo la vacanza!  :coder:  :sleepy:  :2birre:
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.239
  • Tonno verde
    • Mostra profilo
Re:Debug
« Risposta #7 il: 06 Agosto 2019, 09:28:04 »
Dai,non farmi sembrare un mostro...
Intanto mi devo scusare perché come al solito capisco sempre alla rovescia.
La tua domanda iniziale era molto precisa:
Citazione
"only if your program is compiled with debugging informations"
e io invece ho risposto riguardo alla istruzione DEBUG nella IDE.
Anche se in ritardo (direi fuori tempo massimo  ;D ) posso dirti che quando si crea un eseguibile, nella finestra che appare c'è una casella di spunta che recita:
Citazione
Mantieni le informazioni di debug nell'eseguibile
se la spunti ottieni quanto recita il wiki che dovresti avere in italiano perché è già stato tradotto (e non da me) in quella parte.

Per quanto riguarda l'uso di gbx3 se prima dai il comando gbc3 -ga ottieni l'output tutto insieme, naturalmente i comandi devono essere seguiti sempre dal nome del progetto.

 :ciao:
« Ultima modifica: 06 Agosto 2019, 09:31:50 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.725
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Debug
« Risposta #8 il: 06 Agosto 2019, 16:56:35 »
Citazione
Intanto mi devo scusare perché come al solito capisco sempre alla rovescia.
:)
Citazione
quando si crea un eseguibile, nella finestra che appare c'è una casella di spunta che recita:

 Mantieni le informazioni di debug nell'eseguibile
Eccola la risposta che cercavo!!!
Caz! Ho girato e rigirato il menu perchè sapevo d'averla vista ma...
Grazie! :-*
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.725
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Debug
« Risposta #9 il: 07 Agosto 2019, 09:29:00 »
RICAPITOLANDO:

Impiegando l'istruzione  DEBUG http://gambaswiki.org/wiki/lang/debug?l=it si ottiene in console lo stesso risultato che si avrebbe impiegando l'istruzione PRINT ma con anteposte le indicazioni di dove e a che riga del codice in questa forma:
Codice: [Seleziona]
Main.Main.6: Inizio Loop
Se il programma è scritto per riga di comando e si crea l'eseguibile, è possibile scegliere se vedere i messaggi di debug, tramite l'opzione "Mantieni le informazioni di debug nell'eseguibile" come mostrato nell'immagine:

Ora eseguendo il programma con gbr3 nomeprogramma si potranno vedere gli effetti di tale opzione.
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.239
  • Tonno verde
    • Mostra profilo
Re:[Risolto] Debug
« Risposta #10 il: 07 Agosto 2019, 14:46:05 »
 :ciao: Giusto quello che hai scritto solo che la parola chiave o se preferisci l'istruzione Debug non serve solo per comunicare dati sul funzionamento di un progetto a riga di comando ma su un progetto tout court.
Allego un semplice test che dopo averlo scaricato e decompresso occorre compilare come eseguibile da menu: Progetto > Crea > Eseguibile
Come detto occorre che sia spuntata la casella Mantieni le informazioni di debug nell'eseguibile.
Prima provare l'eseguibile facendo doppio click su ProvaDebug.gambas e chiudere il progetto.
Quindi aprire un terminale nella cartella che contiene l'eseguibile e dare il seguente comando
Codice: [Seleziona]
gbr3 ProvaDebug.gambas
Eseguite il progetto e chiudete, se avete fatto tutto correttamente il terminale restituirà:
Citazione
FMain.Button1_Click.9: FMain.Button1_Click.7 Errore provocato volontariamente ma che verrà visto solo nel terminale

Naturalmente lo vedete anche nella console della IDE.

 :ciao: :ciao:

nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.725
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:[Risolto] Debug
« Risposta #11 il: 07 Agosto 2019, 15:03:48 »
 :ok:
Corretto, hai ragione!
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)