2012-01-27 11 views
7

Ho specificato il file di simbolo (pdb) all'interno del 2010 in modo che sia caricato correttamente ma ottengo l'errore No source available e lo Browse to Find Source Code è disattivato. Qualcuno sa come posso specificare la directory del codice sorgente o guardare all'interno del pdb per scoprire dove si trova?visual studio 2010 Simboli di debug C++ caricati ma non riesco a trovare il codice sorgente

EDIT: La mia DLL viene chiamata da un programma esterno. L'errore sta accadendo all'interno della mia DLL quindi ho il codice sorgente. Quando si verifica l'errore, faccio clic su Debug, i simboli pdb vengono caricati ma non la fonte.

+1

[PPB] (http://msdn.microsoft.com/en-us/library/yd4f8bd1 (v = vs.71) aspx) file contiene informazioni di debug e di progetto per il file exe o file .obj. Dubito che puoi "guardare all'interno del pdb per scoprire dove si trova la directory del codice sorgente". – LihO

+0

Posso chiederti cosa stai effettivamente cercando di fare? – LihO

+0

@LihO scusa se non è stato chiaro - Ho aggiornato la domanda. Grazie. –

risposta

4

Se la DLL è stata spostata dalla sua directory di compilazione, è improbabile che il debugger sia in grado di trovare i file del codice sorgente stesso. La prima cosa che si può fare è fare clic con il pulsante destro del mouse sul nodo root della soluzione nella finestra Esplora soluzioni, Proprietà, Proprietà comuni, File di origine debug e aggiungere il percorso alla directory dei sorgenti del progetto DLL.

Secondo modo: il debugger richiede la prima volta che è necessario trovare un file di codice sorgente. Se hai mai fatto clic su Annulla in quella finestra di dialogo, cosa abbastanza comune da fare quando non sai cosa realmente ti sta chiedendo, l'IDE ricorda la tua selezione e non ti chiederà di nuovo. Risolvi il problema cancellando o rinominando il file .suo nascosto nella directory della soluzione.

+0

Ho un problema simile. Sto eseguendo il debug di un'app e non posso entrare in una funzione definita in un altro modulo (DLL). * La finestra dei moduli * segnala che i simboli sono stati caricati per quella DLL, ma l'IDE non entra nella funzione. Sono riuscito ad entrare nella modalità * Disassembly *, ma non riesco a tornare alla fonte (opzione * Vai a codice sorgente * non è selezionabile). Non ho spostato il codice sorgente da quando è stato compilato. Ho provato a cancellare il file .suo e impostare i file di debug di origine - non ha aiutato. Qualche idea? –

+0

Ho un problema simile con un eseguibile, ma non è stato spostato. La finestra Output mostra che i simboli sono stati caricati ma dice che la fonte non è disponibile. Ha opzioni per cercare la fonte o andare al disassemblaggio. L'opzione del codice sorgente è disattivata. Se apro manualmente il file sorgente e provo a impostare un punto di interruzione, mostra un cerchio vuoto per indicare che il modulo non è stato caricato. Succede solo con alcune soluzioni. Molto strano. –

1

Da quello che ho capito, vuoi solo eseguire il debug del tuo programma, che hai in forma di DLL. Il problema è che il programma esterno utilizza questa DLL e si fa clic su "Debug" dalla finestra che si apre dopo l' si verifica l'errore.

Presumo che si desideri aprire il progetto in Visual Studio e quindi premere Ctrl + Alt + P per aprire la finestra "Collega al processo", dove è necessario selezionare il processo che utilizza questa DLL (iexplore.exe o qualsiasi altra cosa si sta lavorando con) in modo che sia possibile attivare alcuni punti di interruzione e vedere cosa sta succedendo prima dello l'errore si verifica.

1

L'hacking di @Hans Passant funziona, ma in realtà esiste un modo ufficiale per ottenere ciò: fare clic con il tasto destro del mouse sulla soluzione in Esplora soluzioni, selezionare Proprietà/Proprietà comuni/File di origine debug. Dovresti essere in grado di visualizzare e modificare un elenco di tutti i file in cui hai precedentemente selezionato "annulla" quando richiesto per un percorso di origine.

enter image description here

Problemi correlati