Debugger Visual C++ 2010 Premium

di il
12 risposte

Debugger Visual C++ 2010 Premium

Buonasera a tutti! Prima domandina veloce veloce inerente al C.
Sto iniziando a scrivere i primi pseudo programmini in C, utilizzo Visual Studio 2010 Premium.
Premetto che ho già letto la guida sul debugger, in grandi linee so a cosa serve (ma non so come usarlo con efficacia, o meglio come leggerlo);
Il problema però non è questo, quanto il fatto che, una volta compilato, per individuare il problema lo faccio partire (f11/Esegui istruzione) ma una volta entrato in "main()" il debugger sembra incepparsi e accanto alla finestra dell'editor iniziano ad aprirsi altri file (scusate l'ignoranza)"strani".
So di essere poco chiaro, ma in tutta franchezza non so bene come esprimermi. Se ho dato l'idea del problema, potreste dirmi come risolverlo per favore?
Eventualmente, se serve carico qualche screen


Grazie in anticipo

12 Risposte

  • Re: Debugger Visual C++ 2010 Premium

    No, non si è capito molto.

    Comunque ti consiglio di fare così

    1) inserisci un breakpoint in una linea di codice con F9

    2) esegui fino a quella linea con F5
  • Re: Debugger Visual C++ 2010 Premium

    Hai ragione, purtroppo non so esprimermi, confesso.
    Ho fatto uno screen, provo a postarlo



    Non so se sono io che non so leggerlo a sto punto (abbi pazienza sono alle prime armi, anzi ai primi codici ) o è proprio qualche impostazione del Visual che ho involontariamente modificato.

    Come vedi si aprono delle finestre dell'editor

    il programmino che ho scritto se puo' servire è questo:
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    #define MAX_ELE 128
    
    char primo[MAX_ELE];
    char codice[1];
    
    int main(){
    	
    	FILE *fpin;
    	FILE *fpout;
    	fpin=fopen("elenco.txt","r");
    	fpout=fopen("uscita.txt","w+");
    
    	if(fpin==NULL){
    		perror("\nImpossibile aprire il file");
    	}
    	if(fpout==NULL){
    		perror("\nImpossibile aprire il file");
    	}
    
    		while(fscanf(fpin,"%s%s\n",primo,codice)!= EOF){
    			if(codice[0]=='F'){
    				fprintf(fpout,"%s %s\n",primo,codice);
    			}
    		}
    		
    		fclose(fpin);
    		fclose(fpout);
    }
    nel file d'ingresso c'è una stringa per linea con un codice finale. Se il codice è "F", stampa stringa e codice.

    Il programmino funziona ma è normale l'apertura di quelle schede?
  • Re: Debugger Visual C++ 2010 Premium

    Normalissimo ... sono alcune (non tutte) le finestre che ti consentono di effettuare il debugging.
  • Re: Debugger Visual C++ 2010 Premium

    Allora son proprio un newbie.. Il problema è sorto quando ho usato casualmente il pc di un collega, e da lui il problema non si è mai posto! Mi visualizza soltanto la finestra in basso "Auto" con nome e valore. Queste finestre che si aprono, non dovrebbero chiudersi una volta terminato il debug istruzione per istruzione, lasciando aperto solo il file .c ?
  • Re: Debugger Visual C++ 2010 Premium

    Intanto partiamo dal concetto che NON è un problema.

    Le finestre contengono informazioni utili, appunto, durante il debugging. Si possono aprire/chiudere in base alle proprie esigenze e la configurazione può essere memorizzata così da avere subito aperte quelle che servono.

    Le finestre sono chiuse quando finisce il debugging. Se fai Shift-F5 l'esecuzione (e il debugging) terminano. Ovviamente anche se esegui completamente il codice.
  • Re: Debugger Visual C++ 2010 Premium

    L'ho chiamato erroneamente problema, perchè onestamente mi confonde, hai ragione non è un problema, è una funzionalità che ahimè non capisco.
    Ma per non farle aprire? Come mai nel mio compilatore si aprono, e il quello di questo collega no?

    Grazie per la pazienza e l'attenzione
  • Re: Debugger Visual C++ 2010 Premium

    Te l'ho detto il perché ... il tuo collega le ha chiuse (o non le ha mai aperte) e così rimangono.

    Ma non capisco il fastidio che ti danno.

    Quando esegui il programma puoi farlo normalmente (con Ctrl-F5) e con il debugger attivo (F5).

    Per terminarlo Shift-F5 ... vedi un po' tu.
  • Re: Debugger Visual C++ 2010 Premium

    Puo' darsi che lui non le apra, il fatto è che man mano che eseguo istruzione successiva, il cursore che mi segnala l'istruzione "puntata" mi si sposta in queste finestre, cioe le finestre mi si aprono sole e il cursore sembra non seguire piu le istruzioni del mio file .c ma di queste altre finestre.

    E' normale anche questo?

    Sono proprio un neofita abbi pazienza
  • Re: Debugger Visual C++ 2010 Premium

    Se intendi che segue il contenuto di altri file .c, sì, è normale perché ti mostra il sorgente delle funzioni chiamate dal tuo programma. Questo perché tu gli dici di eseguire passo passo anche le singole linee in cui si sviluppano le funzioni utilizzate dal tuo programma.
  • Re: Debugger Visual C++ 2010 Premium

    E quindi devo usare i breakpoint per evitare che controlli anche le singole linee?
    Perché ho provato con due righe di codice semplici semplici
    #include <stdio.h>
    
    int main (){
    	int x,y;
    	printf("inserisci primo numero: ");
    	scanf("%d",&x);
    	printf("\ninserisci secondo numero: ");
    	scanf("%d",&y);
    	
    	if(x>y) printf("il maggiore: %d\n",x);
    	else printf("il maggiore: %d\n",y);
    	return 0;
    }
    	
    
    E testato il debugger per controllare i valori. Giunto a " Else" (ho inserito y>x) continuando a eseguire istruzioni successive continuano ad aprirsi file ".c" all'infinito che terminando il debug non si chiudono.

    Giuro, mi sto anche vergognando a continuare a chiedere ma è piu forte di me, continuo ad avere qualche dubbio sulla corretta funzionalità del mio compilatore
  • Re: Debugger Visual C++ 2010 Premium

    Probabilmente tu usi sempre il tasto F11 che ti fa "scendere" all'interno delle funzioni chiamate, anche nel runtime.

    Utilizza il tasto F10
  • Re: Debugger Visual C++ 2010 Premium

    Si in effetti, soltanto con piuttosto che mi si apre un solo file crtexe.c che resta li anche se termino il debug. Probabilmente mi son fatto paranoie e 12 messaggi di questo 3D per cosi poco

    Mi son fissato perché una cosa che mi ripetono tutti è : se non sai usare il debug non capirai mai nulla. Ne sono convinto, ed è per questo che mi faccio mille paranoie

    Grazie ancora per la pazienza
Devi accedere o registrarti per scrivere nel forum
12 risposte