Newsgroup: it.comp.java
Titolo: Debug con Eclipse

Non riesco a fare bene il Debug con Eclipse.
Per creare un Breakpoint basta fare doppio-click sulla sinistra della
linea dell'editor, e lanciando il programma in modalita' Debug quando
l'esecuzione arriva al Breakpoint tutto si ferma e si puo' vedere il
contenuto delle variabili nella View "Variabiles", ma come si fa' a
rilanciare il programma in esecuzione fino a quando non ricapita il
Breakpoint iniziale?
Cliccando su "Step Over" si puo' eseguire il programma riga per riga,
ma quando arrivo alla fine del metodo il controllo mi va a file tipo
"Component.class" (riga 5444), come si fa a fare in modo che il debug
rimanga LIMITATO ai file java del programma che uno sta sviluppando?
Senza saltare in file che non centrano nulla?
Ditemi se mi sono spiegato bene.

 ha scritto nel messaggio 
news:4b199060$0$710$5fc...@news.tiscali.it...


 Per rilaciarlo basta rifare Debug....
Grazie della risposta ma questo gia' lo sapevo ...

 Senza saltare in file che non centrano nulla?
semplice, non si fa.
i breakpoint si mettono nei metodi e nelle parti di codice che si 
vogliono seguire passo passo. quando si esce dai metodi che ci 
interessano si manda avanti fino al breakpoint successivo. tutto quï¿œ. si 
tratta solo di imparare.

Cerco di spiegarmi meglio.
Per imparare a programmare in Java ho scritto un semplice giochino:
una persona scrive un testo, e un'altra persona deve indovinare il
testo digitato vedendo il testo anagrammato.
L'oggetto "tfield" e' un JTextField con aggiunti i due metodi
"settaTesto" e "settaLunghezza", con "settaTesto" si imposta il testo
e con "settaLunghezza" si imposta la lunghezza del testo del JTextField
(il testo nel JTextField non puo' essere piu' lungho della lunghezza
impostata).
All'inizio la lunghezza del JTextField e' zero, a mano a mano che un
giocatore trova le lettere giuste la lunghezza aumenta di un carattere.
Quando il giocatore azzeccha una lettera, il metodo
"modificaTestoAnagrammato" scrive un asterisco nel testo anagrammato al
posta della lettere indovinata (e come gia' scritto la lunghezza del
JTextField aumenta di uno).
La variabile "posizione" indica la posizione della lettera giusta e
quindi anche la lunghezza del testo del "tfield".
Il punto focale del discorso e' il seguente:
Ho messo un breakpoint alla linea in cui viene letta la lettera premuta
dal giocatore che deve indovinare il testo anagrammato, quando lancio
il debug LA PRIMA VOLTA che premo un tasto a "tastoPremuto" viene
assegnato il tasto premuto, ma come faccio a leggere il valore di
"tastoPremuto" le volte SUCCESSIVE che il giocatore preme un tasto?
Se clicco su "Resume" invece di tornare a quella linea con quel
breakpoint il programma termina.
public void keyTyped(KeyEvent ke)
{
   tfield.settaLunghezza(posizione);
   tastoPremuto=ke.getKeyChar();   // Qui c'e' il breakpoint
   if (testoDigitato.charAt(posizione)==tastoPremuto)
   {
    // lettera indovinata
      posizione++;
      modificaTestoAnagrammato();
   }
   else
   {
   // lettera sbagliata
    numErrori++;
    labelErrori.setText(String.format("Errori:  %s",
     numErrori));
   }
   String x=testoDigitato.substring(0, posizione);
   tfield.settaTesto(x);
   tfield.settaLunghezza(posizione);
   if (posizione==testoDigitato.length())
   {
     JOptionPane.showMessageDialog(null,
     "Parola trovata dopo "+numErrori+" errori",
     "Fine",JOptionPane.INFORMATION_MESSAGE);
     System.exit(0);
   }
}

 Il punto focale del discorso e' il seguente:
il punto focale ï¿œ che tu hai bisogno di uno che ti si metta accanto e ti 
spieghi per filo e per segno un bel po' di cose.
nei newsgroup se puoi porre domande puntuali puoi avere risposte, ma se 
brancoli nel buio ï¿œ un po' difficile che a forza di domandine spot tu 
possa risolvere il tuo problema.

 possa risolvere il tuo problema.
HO RISOLTO IL PROBLEMA!

 
E ovviamente nemmeno ti viene in mente che puoi scrivere come hai fatto, 
chissà mai che qualcuno in futuro ne abbia uno simile
-- 
bye
DKano

 chiss� mai che qualcuno in futuro ne abbia uno simile
Dopo la linea con il breakpoint, cliccando su "Resume", credevo che il
programma terminasse, invece il programma NON TERMINA, sullo schermo
rimane Eclipse pero' cliccando sulla barra delle applicazioni e
selezionando il giochino appare la finestra del giochino e quando il
giocatore preme un tasto regolarmente il programma viene sospeso ed e'
possibile vedere il contenuto della variabile "tastoPremuto".
Nel mentre che ci sono illustro un piccolo trucco che ho scoperto e che
forse non tutti i principianti di Eclipse come me sanno.
Cliccando tante volte su "Step Over" quando si arriva alla fine del
programma il controllo va a file tipo "AWTEventMulticaster.class" e
dopo a "Component.class" e poi a "JComponent.class" e cosi' via.
Per EVITARE che in fase di debug il controllo passi a file che non
c'entrano nulla (come le librerie di sistema) bisogna cliccare con il
tasto destro del mouse sulla view "Debug" e dal menu di contesto che
appare selezionare "Edit Step Filters..."
Dalla finestra che appare bisogna SELEZIONARE i package e le classi
che si vuole SALTARE e attivare il checkbox "Use Step Filters".
Dal menu di contesto selezionando "Filter Type" si aggiunge alla
finestra di cui sopra la classe il cui metodo e' in quel momento in
esecuzione, e selezionando "Filter Package" lo stesso discorso ma
riferito al package.
Poi riguardo i breakpoint ho scoperto che e' possibile impostare delle
condizioni in cui far attivare i breakpoint ma credo che questo lo
sappiano tutti.
Spero che a qualcuno questo messaggio sia stato utile.