Come posso rimediare al "Il punto di interruzione non sarà attualmente colpito. Nessun simbolo è stato caricato per questo documento." avviso?

Applicazione desktop C# su express edition. Ha funzionato e poi non ha funzionato 5 secondi dopo.

Ho provato quanto segue.

  • Assicurati che la configurazione di debug, la bandiera di debug e le informazioni di debug complete siano impostate su tutti gli assembly.
  • Cancellare tutte le cartelle bin e obj e tutte le DLL relative al progetto dall'intera macchina.
  • Ricreare da zero i progetti che causano il problema.
  • Riavviare.

Ho due progetti WinForms nella soluzione. Uno di essi carica le informazioni di debug, l'altro no. Entrambi fanno riferimento all'assembly su cui sto cercando di ottenere le informazioni di debug esattamente allo stesso modo nel file di progetto. Qualche idea?


Voglio aggiungere qui, soprattutto per me stesso quando torno a rivedere questa domanda, che i simboli non vengono caricati finché l'assembly non viene caricato, e l'assembly non viene caricato finché non è necessario. Se il punto di interruzione è in una libreria che viene utilizzata solo in una funzione nel tuo assembly principale, i simboli non verranno caricati (e mostrerà il punto di interruzione come non colpito) fino a quando quella funzione viene chiamata.

Soluzione

Inizia il debug, non appena sei arrivato a un punto di interruzione o hai usato Debug > Break All, usa Debug > Windows > Modules. Vedrai una lista di tutti gli assembly che sono caricati nel processo. Individua quello per cui vuoi ottenere informazioni di debug. Fai clic destro su di esso e seleziona Symbol Load Information. Otterrai una finestra di dialogo che elenca tutte le directory in cui è stato cercato il file .pdb per l'assieme. Verifica l'elenco con l'effettiva posizione .pdb. Assicurati che non ne trovi uno vecchio.

Nei progetti normali, l'assembly e il suo file .pdb dovrebbero sempre essere stati copiati dall'IDE nella stessa cartella del tuo .exe. La cartella bin\Debug del tuo progetto. Assicurati di rimuoverne una dalla GAC se ci hai giocato.

Commentari (33)

Solo qualcosa di semplice da provare - potresti aver già provato. Fai clic destro sulla soluzione in solution explorer, fai clic su "clean solution", questo cancella tutti i file compilati e temporanei associati a una soluzione.

Fai una ricostruzione della soluzione e prova di nuovo a fare il debug.

Ho anche avuto problemi con i breakpoint di più progetti in una soluzione - alcuni compilati come x86, altri come x64.

Commentari (8)

È necessario abilitare "Generate debug info" nelle impostazioni del compilatore

Commentari (3)