Perché Visual Studio 2010 non è in grado di trovare / aprire i file PDB?

Sto cercando di usare OpenCV in VS 2010. Sono un dilettante e sto imparando i primi passi dal wiki OpenCV. Tuttavia, quando provo a eseguire il debug del mio progetto, ottengo i seguenti errori:

‘C: \ Windows \ SysWOW64 \ ntdll.dll’, Imansible trovare o aprire il file PDB ‘C: \ Windows \ SysWOW64 \ kernel32.dll’, Imansible trovare o aprire il file PDB ‘C: \ Windows \ SysWOW64 \ kernellbase. dll ‘, Imansible trovare o aprire il file PDB

Ho quei file nella giusta directory, quindi perché non può aprirli? Cosa devo fare per risolvere il problema?

Prima modifica i seguenti parametri:

Strumenti -> Opzioni -> Debug -> Simboli -> Server -> Sì

Quindi premi Ctrl + F5 e vedrai cose incredibili.

Sono abbastanza sicuro che quelli sono avvertimenti , non errori. Il tuo progetto dovrebbe funzionare ancora bene.

Tuttavia, poiché dovresti sempre provare a correggere gli avvertimenti del compilatore, vediamo cosa possiamo scoprire. Non ho alcuna familiarità con OpenCV e non ti colleghi al tutorial wiki che stai seguendo. Ma mi sembra che il problema sia che stai usando una versione a 64 bit di Windows (come evidenziato dalla cartella “SysWOW64” nel percorso dei file DLL), ma la roba OpenCV che stai provando è costruita per una piattaforma a 32 bit. Quindi potresti dover ribuild il progetto usando CMake, come spiegato qui .

Più in particolare, i file elencati sono file di sistema di Windows. I file PDB contengono informazioni di debug che Visual Studio utilizza per consentire all’utente di eseguire il debug e compilare il codice compilato. In realtà non è necessario che i file PDB per le librerie di sistema siano in grado di eseguire il debug del proprio codice. Ma se vuoi, puoi anche scaricare i simboli per le librerie di sistema. Vai al menu “Debug”, fai clic su “Opzioni e impostazioni” e scorri verso il basso la casella di riepilogo sulla destra finché non viene visualizzato il messaggio “Abilita il supporto del server di origine”. Assicurati che l’opzione sia selezionata. Quindi, nella vista ad albero a sinistra, fai clic su “Simboli” e assicurati che l’opzione “Microsoft Symbol Servers” sia selezionata. Fare clic su OK per chiudere la finestra di dialogo, quindi provare a ribuild.

Visual Studio Community Edition 2015

Ho avuto questo errore tutto il giorno. Alla fine l’ho risolto andando in Strumenti> Importa ed esporta impostazioni> Ripristina tutte le opzioni> Ripristina impostazioni generali.

Una volta ripristinato, vai su Strumenti> Opzioni> Debug> Simboli> quindi seleziona la casella accanto a Microsoft Symbol Server.

Esegui la tua app in modalità di debug e aprirà le windows dicendo che sta scaricando i simboli per un sacco di diversi file .dll. Lascia che finisca di farlo.

Una volta completato, dovrebbe funzionare di nuovo.

Ho avuto lo stesso problema. Si scopre che, compilando un progetto che ho ricevuto da qualcun altro, non ho impostato il progetto StartUp corretto (fare clic con il tasto destro del mouse sul progetto di avvio desiderato in solution explorer e selezionare “imposta come progetto di avvio”). Forse questo ti aiuterà, evviva.

Per gli utenti di VS2013 che si trovano qui come ho fatto io:

Tools -> Options -> Debugging -> Symbols 

Vedrai che i Cache symbols in this directory: campo è vuoto; puoi sfogliare / inserire il percorso da solo o semplicemente andare avanti e fare clic sul pulsante Load all symbols . Apparirà una finestra di avviso che dice “Poiché non hai selezionato una directory della cache dei simboli, verrà utilizzato il valore predefinito”. Ora vedrai C:\Users\XXXX\AppData\Local\Temp\SymbolCache nel campo-percorso precedentemente vuoto. Fai clic su Load all symbols una seconda volta e dovresti essere impostato. Hit ok, e solo per amor di diligenza, pulire e ribuild la soluzione.

Facendo riferimento al primo thread / un’altra possibilità VS non è ansible aprire o trovare il file pdb del processo quando il tuo eseguibile viene eseguito in background. Stavo lavorando con mpiexec e mi sono imbattuto in questo problema. Controlla sempre il tuo task manager e uccidi qualsiasi processo di esecuzione che tu costruisci nel tuo progetto. Una volta fatto, ha eseguito il debug o costruito bene.

Inoltre, se si tenta di continuare con l’avviso, i punti di interruzione non verrebbero colpiti e non avrebbe l’eseguibile corrente

Ho scoperto che a volte questi errori derivano dalla mancanza di permessi durante la compilazione di un progetto, quindi corro come amministratore per farlo funzionare correttamente.

Sto avendo gli stessi avvertimenti. Non sono sicuro che sia questione di 32 contro 64 bit. Ho appena caricato i nuovi simboli e alcuni problemi sono stati risolti, ma quelli relativi a OpenCV persistono ancora. Questo è un estratto dell’output con il problema risolto e non risolto:

‘OpenCV_helloworld.exe’: caricato ‘C: \ OpenCV2.2 \ bin \ opencv_imgproc220d.dll’, Imansible trovare o aprire il file PDB

‘OpenCV_helloworld.exe’: caricato ‘C: \ WINDOWS \ system32 \ imm32.dll’, simboli caricati (informazioni sull’origine rimosse).

Il codice sta per terminare 0 nel caso qualcuno lo chieda.

Il programma ‘[4424] OpenCV_helloworld.exe: Nativo’ è terminato con il codice 0 (0x0).

Ho avuto lo stesso problema. Il debug non funziona con gli elementi forniti con l’eseguibile OpenCV. devi build i tuoi propri binarys.
Quindi triggers Microsoft Symbol Server in Debug-> opzioni e impostazioni-> debug-> simboli

Mi sono imbattuto nello stesso problema. Quando ho eseguito il mio Unit Test su codice C ++, ho ricevuto un errore che diceva “Imansible trovare o aprire il file PDB”.

logs

Quando ho guardato il log di output in Visual Studio, ho visto che stava cercando nella cartella sbagliata. Avevo ribattezzato la cartella WinUnit, ma qualcosa nel codice WinUnit cercava il file PDB usando il vecchio nome della cartella. Immagino che l’abbiano codificato.

Trovato il problema

Quando ho scaricato e decompresso per la prima volta i file WinUnit, la cartella principale si chiamava “WinUnit-1.2.0909.1”. Dopo aver decompresso il file, ho rinominato la cartella in “WinUnit” poiché è più semplice da digitare durante l’installazione del progetto di Visual Studio. Ma a quanto pare questo ha rotto la possibilità di trovare il file PDB, anche se ho impostato tutto secondo la documentazione WinUnit.

La mia correzione

Ho cambiato il nome della cartella di nuovo all’originale, e funziona.

Strano.

Aveva lo stesso problema qui ma una soluzione diversa ha funzionato.

Innanzitutto, ho provato quanto segue, nessuno dei quali funzionava:

  1. Carica i simboli come suggerito da seanlitow

  2. Rimuovi / Aggiungi riferimento a PresentationFramework e PresentationCore

  3. Riavvia il sistema

La soluzione era di annullare le ultime modifiche apportate al mio codice. Avevo appena aggiunto un paio di pulsanti radio e gestori di eventi per eventi selezionati e non controllati. Dopo aver rimosso le mie recenti modifiche, tutto è stato compilato. Ho quindi aggiunto le mie modifiche esatte e tutto è stato compilato correttamente. Non capisco perché questo ha funzionato – l’unica cosa che posso pensare è un problema con la mia soluzione VS. Ad ogni modo, se nessuno degli altri suggerimenti funziona, potresti provare a ripristinare le modifiche più recenti. NOTA: se si chiude e si riapre Visual Studio, la cronologia degli annullamenti viene persa .. quindi è ansible provare questo prima di chiudere VS.