none
Debug non funzionante RRS feed

  • Domanda

  • Salve, 

    ho installato visual studio 2010 per far girare una soluzione esistente che con le nuove versioni di visual studio non andava, ho iniziato a fare il debug ma ad un certo punto non ha più funzionato, in qualunque punto dei file inserisco i punti di interruzione non si ferma mai. come posso risolvere? 

    Grazie

    • Tipo modificato bit_byte giovedì 6 febbraio 2014 17:26
    giovedì 6 febbraio 2014 16:45

Risposte

  • Grazie BlueLed,

    il progetto in questione è la libreria OpenSteer, scritta con non so quale versione di visual studio, volevo aprire la soluzione con VS 2012 ecco perchè ho rinominato la cartella VS2012 per non confonderla con l'originale. Attualmente ho risolto gli errori precedenti ma quando eseguo la soluzione mi si apre una finestra di errore con su scritto Impossibile avviare il programma 'C:\Libreria Opensteer\OpenSteer_0_8_2 VS2012\opensteer\win32\Debug\opensteer.lib'

    Grazie in anticipo per l'aiuto.

    Ho dato uno sguardo ad OpenSteer, la soluzione è per Visual Studio .Net 2003.

    All'interno ci sono due progetti:

    1. La library
    2. Il demo che testa la library

    L'ordine di compilazione dovrebbe essere: prima la library e poi la demo (che necessita della library)

    Gli errori con VS2012 sembrano legati al fatto che non riesce a creare la directory "Lib" dove mettere  la library (opensteerd.lib o opensteer.lib) e copiarcela dentro.

    Questi errori dici che li hai risolti, ma assicurati che la library sia compilata, che, cioè, i file opensteer.lib e opensteerd.lib siano creati "almeno da qualche parte" nel tuo progetto.

    I problemi con i breakpoint potrebbero essere dovuti al fatto che la compilazione dei due progetti potrebbe non essere "sincronizzata". Prova a compilare esplicitamente prima la lib e poi la demo.


    • Modificato BlueLed mercoledì 12 febbraio 2014 10:24
    • Proposto come risposta Irina Turcu giovedì 20 febbraio 2014 14:27
    • Contrassegnato come risposta Irina Turcu venerdì 28 febbraio 2014 16:57
    mercoledì 12 febbraio 2014 10:21
  • Quindi dovrei creare un progetto vuoto ed importare tutti i cpp presenti in opensteerdemo? ed opensteer come lo importo?

    Grazie

    Crea un progetto "Console",  copiaci dentro questi file e aggiungili al progetto:

    OpenSteerDemo.cpp
    OpenSteerDemo.ico
    main.cpp
    Resource.h
    SteerTest.rc

    opensteerd.lib

    copia anche queste directory ed aggiungi i file che contengono al progetto.

    include/
    plugins/

    Nelle proprietà del progetto (configurazione di debug) imposta:

    General
        Charset: not set

    C/C++
        General
            Additional Include Directories: include

    Linker
        Input
            Additional Dependencies: opensteerd.lib

    Non so se questo possa bastare, nel mio caso ho dovuto reperire ed impostare anche glut32.lib e glut32.dll

    • Proposto come risposta Irina Turcu giovedì 20 febbraio 2014 14:27
    • Contrassegnato come risposta Irina Turcu venerdì 28 febbraio 2014 16:57
    giovedì 13 febbraio 2014 15:03

Tutte le risposte

  • Salve, 

    ho installato visual studio 2010 per far girare una soluzione esistente che con le nuove versioni di visual studio non andava, ho iniziato a fare il debug ma ad un certo punto non ha più funzionato, in qualunque punto dei file inserisco i punti di interruzione non si ferma mai. come posso risolvere? 

    Grazie


    Prova a fare il "Rebuild Solution" dal menu Build ed eventualmente togliere e rimettere il breakpoint.
    giovedì 6 febbraio 2014 21:37
  • Ho fatto il "Rebuild Solution", ho disattivato i breakpoint ed ho rieseguito il debug, in corispondenza del breakpoint inserito il cerchietto è comparso un triangolo di avviso dopo di che si è presentata un finestra con il seguente messaggio "Le informazioni di debug relative a 'progetto.exe' non sono state trovate oppure non corrispondono. Impossibile trovare o aprire il file PDB.
    Contnuare il debug?" 

    Cosa posso fare?

    Grazie

    venerdì 7 febbraio 2014 10:53
  • Ho fatto il "Rebuild Solution", ho disattivato i breakpoint ed ho rieseguito il debug, in corispondenza del breakpoint inserito il cerchietto è comparso un triangolo di avviso dopo di che si è presentata un finestra con il seguente messaggio "Le informazioni di debug relative a 'progetto.exe' non sono state trovate oppure non corrispondono. Impossibile trovare o aprire il file PDB.
    Contnuare il debug?" 

    Cosa posso fare?

    Grazie

    Stai usando V2010 per lavorare su un progetto creato con VS2012 ?

    VS2010 non può essere completamente compatibile con VS2012. Sembra strano che ti abbia aperto il progetto. (Forse perchè il progetto è semplice).

    Ma se il progetto è semplice, tipo un solo file, ti conviene creare un nuovo progetto ed aggiungerci quel file.


    • Modificato BlueLed venerdì 7 febbraio 2014 11:33
    venerdì 7 febbraio 2014 11:32
  • Grazie per la risposta BlueLed, 

    no stò lavorando su un progetto creato non so con quale versione ed io l'ho aperto con VS2010 perchè con VS2012 avevo problemi durante la compilazione, uno dei tanti è del tipo "fatal error C1083: Impossibile aprire il file inclusione 'GL/glut.h'"; per cui almeno con VS2010 viene eseguito correttamente ma non riesco a fare il debug, anche se fino a qualche ora fa funzionava.

    Grazie

    venerdì 7 febbraio 2014 16:11
  • Grazie per la risposta BlueLed, 

    no stò lavorando su un progetto creato non so con quale versione ed io l'ho aperto con VS2010 perchè con VS2012 avevo problemi durante la compilazione, uno dei tanti è del tipo "fatal error C1083: Impossibile aprire il file inclusione 'GL/glut.h'"; per cui almeno con VS2010 viene eseguito correttamente ma non riesco a fare il debug, anche se fino a qualche ora fa funzionava.

    Grazie

    Ma il progetto che hai aperto con VS2010 è quello che avevi già aperto con VS2012 o è una copia dell'originale?

    Il file PDB di cui parla nel messaggio esiste?

    Prova a cancellare il file .pdb che sta nella stessa directory dell'exe (DEBUG). Questo verrà ricreato. MA, PER PRECAUZIONE, NON LO CANCELLARE o lo rinomini o lo sposti.


    • Modificato BlueLed venerdì 7 febbraio 2014 22:26
    venerdì 7 febbraio 2014 22:24
  • Il progetto aperto con VS 2010  era la copia originale, ho provato ad aprire una copia dell'originale in VS 2012 ma ho una serie di errori come questi

    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(134,5): error MSB3073: uscita dal comando "mkdir "C:\Libreria Opensteer\OpenSteer_0_8_2 VS2012\opensteer\win32\\lib"
    
    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(134,5): error MSB3073: copy "C:\Libreria Opensteer\OpenSteer_0_8_2 VS2012\opensteer\win32\Debug\opensteer.lib" "C:\Libreria Opensteer\OpenSteer_0_8_2 VS2012\opensteer\win32\\lib"
    
    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(134,5): error MSB3073: 
    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(134,5): error MSB3073: :VCEnd" con codice 1.
    

    che non so se sono risolvibili, per cui provato ad usare VS 2010, che per lo meno non mi da errori, se però gli errori VS 2012 sono risolvibili uso direttamente il 2012.

    Il file PDB esiste.

    Come posso risolvere?

    Grazie

    martedì 11 febbraio 2014 12:01
  • Il progetto aperto con VS 2010  era la copia originale, ho provato ad aprire una copia dell'originale in VS 2012 ma ho una serie di errori come questi

    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(134,5): error MSB3073: uscita dal comando "mkdir "C:\Libreria Opensteer\OpenSteer_0_8_2 VS2012\opensteer\win32\\lib"
    
    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(134,5): error MSB3073: copy "C:\Libreria Opensteer\OpenSteer_0_8_2 VS2012\opensteer\win32\Debug\opensteer.lib" "C:\Libreria Opensteer\OpenSteer_0_8_2 VS2012\opensteer\win32\\lib"
    
    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(134,5): error MSB3073: 
    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(134,5): error MSB3073: :VCEnd" con codice 1.

    che non so se sono risolvibili, per cui provato ad usare VS 2010, che per lo meno non mi da errori, se però gli errori VS 2012 sono risolvibili uso direttamente il 2012.


    Bisogna conoscere la natura del progetto per capire se quegli errori sono (facilmente)  risolvibili con VS2012.

    Leggo "OpenSteer_0_8_2 VS2012", quindi forse è prevista la compilazione con VS2012.

    E' un progetto pubblico? Utilizza una libreria chiamata OpenSteer, è forse un progetto dimostrativo di quella libreria?

    martedì 11 febbraio 2014 12:18

  • Il file PDB esiste.

    Come posso risolvere?

    Grazie

    Ma ogni volta che compili, quel file viene aggiornato? Dopo ogni compilazione, controlla la data del file.

    martedì 11 febbraio 2014 12:20
  • Grazie BlueLed,

    il progetto in questione è la libreria OpenSteer, scritta con non so quale versione di visual studio, volevo aprire la soluzione con VS 2012 ecco perchè ho rinominato la cartella VS2012 per non confonderla con l'originale. Attualmente ho risolto gli errori precedenti ma quando eseguo la soluzione mi si apre una finestra di errore con su scritto Impossibile avviare il programma 'C:\Libreria Opensteer\OpenSteer_0_8_2 VS2012\opensteer\win32\Debug\opensteer.lib'

    Grazie in anticipo per l'aiuto.

    mercoledì 12 febbraio 2014 09:39
  • Grazie BlueLed,

    il progetto in questione è la libreria OpenSteer, scritta con non so quale versione di visual studio, volevo aprire la soluzione con VS 2012 ecco perchè ho rinominato la cartella VS2012 per non confonderla con l'originale. Attualmente ho risolto gli errori precedenti ma quando eseguo la soluzione mi si apre una finestra di errore con su scritto Impossibile avviare il programma 'C:\Libreria Opensteer\OpenSteer_0_8_2 VS2012\opensteer\win32\Debug\opensteer.lib'

    Grazie in anticipo per l'aiuto.

    Ho dato uno sguardo ad OpenSteer, la soluzione è per Visual Studio .Net 2003.

    All'interno ci sono due progetti:

    1. La library
    2. Il demo che testa la library

    L'ordine di compilazione dovrebbe essere: prima la library e poi la demo (che necessita della library)

    Gli errori con VS2012 sembrano legati al fatto che non riesce a creare la directory "Lib" dove mettere  la library (opensteerd.lib o opensteer.lib) e copiarcela dentro.

    Questi errori dici che li hai risolti, ma assicurati che la library sia compilata, che, cioè, i file opensteer.lib e opensteerd.lib siano creati "almeno da qualche parte" nel tuo progetto.

    I problemi con i breakpoint potrebbero essere dovuti al fatto che la compilazione dei due progetti potrebbe non essere "sincronizzata". Prova a compilare esplicitamente prima la lib e poi la demo.


    • Modificato BlueLed mercoledì 12 febbraio 2014 10:24
    • Proposto come risposta Irina Turcu giovedì 20 febbraio 2014 14:27
    • Contrassegnato come risposta Irina Turcu venerdì 28 febbraio 2014 16:57
    mercoledì 12 febbraio 2014 10:21
  • Grazie infinite!

    Gli errori che avevo in precedenza li ho risolti aprendo la finestra delle proprietà e seguendo 

    Proprietà di configurazione -> File di input -> era impostato $(OutDir)$(ProjectName)d.lib ed ho tolto la d finale, per cui ho risolto così.

    Adesso però se eseguo mi da l'errore "Impossibile avviare il programma C:\OpenSteer_0_8_2_source\opensteer\win32\Debug\opensteer.lib", anche se il file viene correttamente creato nella cartella Debug.

    Ho provato a compilare separatamente i due progetti:

    - la library, non da problemi

    - la demo, mi restituisce l'errore LNK1104 "impossibile aprire il file opensteer.lib"

    Cos'altro devo cambiare? dove sbaglio?

    Grazie 


    • Modificato bit_byte mercoledì 12 febbraio 2014 12:25
    mercoledì 12 febbraio 2014 12:23
  • Adesso però se eseguo mi da l'errore "Impossibile avviare il programma C:\OpenSteer_0_8_2_source\opensteer\win32\Debug\opensteer.lib", anche se il file viene correttamente creato nella cartella Debug.

    Non puoi "eseguire" una libreria ".lib". Puoi eseguire un progetto che crea un "exe".

    Probabilmente hai come progetto di avvio quello della libreria e quando premi F5 cerca di eseguirti quello. Imposta il progetto demo come progetto d'avvio (verrà marcato in neretto).

    mercoledì 12 febbraio 2014 13:01
  • Grazie infinite!

    Gli errori che avevo in precedenza li ho risolti aprendo la finestra delle proprietà e seguendo 

    Proprietà di configurazione -> File di input -> era impostato $(OutDir)$(ProjectName)d.lib ed ho tolto la d finale, per cui ho risolto così.


    Non li hai risolti.

    Puoi compilare per la versione di Debug e per la versione di Release.

    La "d" finale l'hanno usata per dare un nome diverso alla lib per la  versione "d"ebug, quindi quello è corretto.

    Quindi in definitiva se compili entrambe le versioni ti dovresti ritrovare due file: opensteer.lib e opensteerd.lib


    • Modificato BlueLed mercoledì 12 febbraio 2014 13:10
    mercoledì 12 febbraio 2014 13:06

  • Ho provato a compilare separatamente i due progetti:

    - la library, non da problemi

    - la demo, mi restituisce l'errore LNK1104 "impossibile aprire il file opensteer.lib"

    Cos'altro devo cambiare? dove sbaglio?

    Grazie 


    La demo cerca il file opensteer.lib nella directory del progetto win32\Lib.

    Te la ritrovi quella directory all'interno della cartella del progetto ??

    All'interno ci sono i due file opensteer.lib e opensteerd.lib ??

    Se non sono lì, stanno almeno da qualche altra parte all'interno della cartella del progetto ??

    • Modificato BlueLed mercoledì 12 febbraio 2014 13:09
    mercoledì 12 febbraio 2014 13:06
  • Grazie BlueLed,

    se imposto il progetto Demo come avvio ottengo sempre lo stesso risultato, cioè l'errore "Impossibile avviare il programma Demo.exe".

    Se però non tolgo la "d" finale, ottengo sempre gli stessi errori precedenti

    Sintassi del comando errata.
    1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(134,5): error MSB3073: uscita dal comando "mkdir C:\OpenSteer_0_8_2_PROVA\opensteer\win32\\lib
    
    1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(134,5): error MSB3073: copy C:\OpenSteer_0_8_2_PROVA\opensteer\win32\Release\opensteer.lib C:\OpenSteer_0_8_2_PROVA\opensteer\win32\\lib
    1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(134,5): error MSB3073: 
    1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(134,5): error MSB3073: :VCEnd" con codice 1.

    All'interno del progetto ho la cartella win32\Lib al cui interno c'è solo il file opensteer.lib. Mentre opensteerd.lib è presente solo nella cartella Debug, ma non capisco chi produce questo file.

    Cosa posso fare?

    Grazie

    mercoledì 12 febbraio 2014 14:41
  • Grazie BlueLed,

    se imposto il progetto Demo come avvio ottengo sempre lo stesso risultato, cioè l'errore "Impossibile avviare il programma Demo.exe".

    Se però non tolgo la "d" finale, ottengo sempre gli stessi errori precedenti

    Sintassi del comando errata.
    1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(134,5): error MSB3073: uscita dal comando "mkdir C:\OpenSteer_0_8_2_PROVA\opensteer\win32\\lib
    
    1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(134,5): error MSB3073: copy C:\OpenSteer_0_8_2_PROVA\opensteer\win32\Release\opensteer.lib C:\OpenSteer_0_8_2_PROVA\opensteer\win32\\lib
    1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(134,5): error MSB3073: 
    1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(134,5): error MSB3073: :VCEnd" con codice 1.

    All'interno del progetto ho la cartella win32\Lib al cui interno c'è solo il file opensteer.lib. Mentre opensteerd.lib è presente solo nella cartella Debug, ma non capisco chi produce questo file.

    Cosa posso fare?

    Grazie

    Se imposti la configurazione di debug e compili la library, ottieni il file opensteerd.lib.

    Se imposti la configurazione di release e compili la library, ottieni il file opensteer.lib.

    Dopo la compilazione, questi file dovrebbero essere copiati nella directory win32\Lib. Ma a quanto pare solo la versione di release viene copiata.

    Copia opensteerd.lib manualmente in win32/Lib e vedi se ti compila il demo e te lo esegue.

    Stai lavorando in Debug o Release?

    Non sto provando con VS2012, ma il tutto sembra funzionare anche con i breakpoint.

    mercoledì 12 febbraio 2014 18:46
  • Grazie BlueLed!

    quindi se compilo in debug ottengo opensteerd.lib creato nella cartella debug, mentre con release si crea l'altro.lib nella cartella release, ma dopo la compilazione i file non vengono copiati in win32\Lib, a me non copia proprio nulla in lib neanche opensteer.lib.

    Ho provato a copiare nella cartella lib sia opensteer.lib che opensteerd.lib ma ottengo come risultato sempre il solito errore specificato nel post precedente. In questa prova però non ho modificato nessuna proprietà di configurazione, devo farlo?

    Comunque vorrei lavorare in debug, potrebbe essere un problema?

    Grazie ancora

    giovedì 13 febbraio 2014 08:37
  • Grazie BlueLed!

    quindi se compilo in debug ottengo opensteerd.lib creato nella cartella debug, mentre con release si crea l'altro.lib nella cartella release, ma dopo la compilazione i file non vengono copiati in win32\Lib, a me non copia proprio nulla in lib neanche opensteer.lib.

    Ho provato a copiare nella cartella lib sia opensteer.lib che opensteerd.lib ma ottengo come risultato sempre il solito errore specificato nel post precedente. In questa prova però non ho modificato nessuna proprietà di configurazione, devo farlo?

    Comunque vorrei lavorare in debug, potrebbe essere un problema?

    Grazie ancora

    Il debug dovrebbe andare, così come il release.

    Quando hai aperto per la prima volta il progetto originale con VS2012, ti avrà fatto la conversione. Sicuro che la conversione sia stata completa? Ti avrebbe dovuto fare un report con eventuali errori e warning. Forse c'è stato qualche problema che non ti permette di usare pienamente il progetto convertito.

    Dato che prima o poi dovrai farlo, potresti anche creare un nuovo progetto "MyDemo" per il demo. Oltre ad aggiungere i riferimenti alla opensteer(d).lib ci aggiungi anche tutti i file che vedi elencati nel progetto demo.


    • Modificato BlueLed giovedì 13 febbraio 2014 08:48
    giovedì 13 febbraio 2014 08:48
  • Si la conversione mi ha generato il file di log, ma non ci sono errori solo warning ed alla fine del file c'è  

    OpenSteer.sln: Soluzione migrata correttamente

    quindi non so dove altro guardare per capire cosa non funziona!

    giovedì 13 febbraio 2014 10:50
  • Si la conversione mi ha generato il file di log, ma non ci sono errori solo warning ed alla fine del file c'è  

    OpenSteer.sln: Soluzione migrata correttamente

    quindi non so dove altro guardare per capire cosa non funziona!

    I warning potrebbero aiutare a capire cosa non funziona.

    Ad ogni modo, opensteer.lib e opensteerd.lib sono state compilate. Perchè non ti crei un nuovo progetto MyDemo in cui le usi. Nel nuovo progetto ricreerai OpenSteerDemo (con tutti i file di cui ha bisogno)


    • Modificato BlueLed giovedì 13 febbraio 2014 11:12
    giovedì 13 febbraio 2014 11:12
  • Quindi dovrei creare un progetto vuoto ed importare tutti i cpp presenti in opensteerdemo? ed opensteer come lo importo?

    Grazie

    giovedì 13 febbraio 2014 14:41
  • Quindi dovrei creare un progetto vuoto ed importare tutti i cpp presenti in opensteerdemo? ed opensteer come lo importo?

    Grazie

    Crea un progetto "Console",  copiaci dentro questi file e aggiungili al progetto:

    OpenSteerDemo.cpp
    OpenSteerDemo.ico
    main.cpp
    Resource.h
    SteerTest.rc

    opensteerd.lib

    copia anche queste directory ed aggiungi i file che contengono al progetto.

    include/
    plugins/

    Nelle proprietà del progetto (configurazione di debug) imposta:

    General
        Charset: not set

    C/C++
        General
            Additional Include Directories: include

    Linker
        Input
            Additional Dependencies: opensteerd.lib

    Non so se questo possa bastare, nel mio caso ho dovuto reperire ed impostare anche glut32.lib e glut32.dll

    • Proposto come risposta Irina Turcu giovedì 20 febbraio 2014 14:27
    • Contrassegnato come risposta Irina Turcu venerdì 28 febbraio 2014 16:57
    giovedì 13 febbraio 2014 15:03