c# visual Come posso rimediare a "Il punto di interruzione non verrà colpito al momento. Nessun simbolo è stato caricato per questo documento. "Avviso?




visual studio debug window (20)

Applicazione desktop C # su Express Edition. Lavorato poi non ha funzionato 5 secondi dopo.

Ho provato il seguente.

  • Assicurarsi che la configurazione di debug, il flag di debug e le informazioni di debug complete siano impostate su tutti gli assembly.
  • Elimina tutte le cartelle bin e obj e tutte le DLL relative al progetto dalla mia intera macchina.
  • Ricrea i progetti che causano il problema da zero.
  • Reboot.

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

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

https://code.i-harness.com


È necessario abilitare "Genera informazioni di debug" nelle impostazioni del compilatore


A volte, anche se ti dà questo errore, il breakpoint viene comunque colpito, quindi ignora l'errore. Questo accade abbastanza spesso nelle Views di MVC web app .


Basta controllare se la soluzione è in modalità di rilascio.


Controlla se il tuo file .pbd è mancante nella cartella bin / debug. Se è quindi andare su "Proprietà" del progetto, selezionate "Build" e quindi "Advanced" in basso. Scegli "pieno" in "Informazioni di debug" nella nuova finestra che è apparso. Questo era il mio problema e l'ho risolto per me.


Cross postando questa correzione da Hans K che ho trovato sul thread simile >> QUI << :

Fare clic destro su soluzione -> Proprietà

Guarda sotto Proprietà comuni -> Progetto di avvio

Seleziona più progetti di avvio

seleziona Inizia azione sui progetti che devi eseguire il debug.


Disattiva l'opzione "Solo il mio codice" nelle impostazioni Debug / Generale.


Ho anche avuto lo stesso problema che ricostruisco l'intera soluzione (compresi i progetti referenziati) in x86 (o x64)

Anche se ho impostato tutti i miei progetti su x86 da Configuration Manager (Build-> ConfigManager) alcuni dei miei progetti erano impostati su x86.

Quindi, per essere sicuri di fare clic con il tasto destro su project-> properties-> Debug Tab, verificare Configuration and Platform.


Ho letto attentamente tutte le risposte sopra, ma nessuno di loro ha risolto il mio problema.

Nel mio caso, stavo compilando una libreria di classi (DLL). Nessun modulo sembra essere stato caricato in Debug -> Modules, quindi non ho potuto caricare i simboli manualmente.

La mia soluzione era aggiungere questa linea al mio codice:

System.Diagnostics.Debugger.Launch();

Una volta raggiunto questo codice, viene attivata un'eccezione e .NET Framework mostra una finestra di dialogo che chiede quale Visual Studio (ovvero nuova istanza di VS 2008, nuova istanza di VS 2013, ecc.) Che si desidera utilizzare per eseguire il debug del programma. Puoi scegliere l'istanza esistente di VS con il tuo progetto caricato. Questo collegherà il processo alla tua sessione VS e caricherà tutti i simboli, e ora puoi eseguire il debug del tuo progetto.

Ovviamente, la compilazione deve essere eseguita usando la configurazione di Debug, non Release.


Inizia il debug, non appena sei arrivato a un breakpoint o hai usato Debug > Break All , usa Debug > Windows > Modules . Verrà visualizzato un elenco di tutti gli assembly caricati nel processo. Trova quello per cui vuoi ottenere le informazioni di debug. Fare clic con il tasto destro del mouse e selezionare Symbol Load Information. Verrà visualizzata una finestra di dialogo in cui sono elencate tutte le directory in cui è stato cercato il file .pdb per l'assembly. Verificare tale elenco rispetto alla posizione .pdb effettiva. Assicurati che non trovi uno vecchio.

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


Invece di fare tutte queste cose solo

Chiudi e riapri

la soluzione risolverà il problema


La risposta selezionata mi ha portato a risolvere il mio problema. Ma ho bisogno di fare alcune cose in più:

Anche con "Debug" selezionato nel menu a discesa:

E nel progetto Proprietà> Costruisci:

Visual Studio non stava caricando i simboli su un progetto specifico. Quindi in quel menu a discesa seleziono "Gestore configurazione" e ho visto che le impostazioni del mio progetto web non erano corrette:

Quindi ho impostato su "Debug" e ha iniziato a generare il file .pdb . MA ho bisogno di copiare manualmente il PDB e DLL e inserire la cartella che stava cercando VS (qui è dove la risposta selezionata mi ha aiutato):


Nel mio caso "Optimize Code" è stato controllato nelle proprietà del mio progetto. Ciò ha indotto VS a vedere il mio assembly come "non il mio codice" e, a sua volta, non ha caricato simboli per questo.

La soluzione era deselezionare questo.


Nessuna di quelle risposte ha risolto il mio problema. Ho provato un'altra cosa sulla base del fatto che il progetto con lo stop non era in realtà il progetto caricato. Ho scoperto come Hans Passant ha scritto che il file .dll dove voglio arrestare il debugger ei file .pdb associati dove sono stati copiati vicino al file .exe. Quei file hanno avuto una data più vecchia quindi ho pensato che non fossero stati aggiornati nel runtime. Li ho cancellati manualmente, Visual Studio creava un'altra coppia e mettevo questa nuova coppia vicino all'exe. Ora i punti di rottura funzionano!

Forse Visual Studio non può copiare e SOSTITUIRE i file esistenti (.dll e .pdb) vicino all'exe perché c'è un altro lì. Quindi, se ho cancellato manualmente, VS potrebbe crearne uno nuovo vicino a .exe.

Penso che un altro cambiamento (controlli e così via - dalle altre risposte) abbia attivato qualcosa e Visual Studio abbia copiato e sostituito la dll e il pdb dalla cartella del progetto alla cartella vicino all'exe, quindi quella era una soluzione.

Penso che la causa principale del problema è che Visual Studio usa un altro file in runtime, non il file dal progetto, con lo stop.

Forse questa risposta per aiutare qualcuno!


Per un'applicazione ASP.Net, controllare le proprietà del sito, scheda ASP.NET. Assicurarsi che sia selezionata la versione ASP.NET corretta.


Proprietà del progetto (quindi selezionare la configurazione di build)> scheda Crea> Avanzate ...> Informazioni di debug (menu a discesa)

Impostare su "all" o "pdb-only", quindi ricostruire


Prova a eseguire Visual Studio come amministratore di Windows.


So che sono in ritardo di anni, ma pensavo di aver fatto qualcosa di sbagliato e ho seguito i passaggi precedenti, poi mi sono reso conto che avrei impostato la configurazione della soluzione su 'Rilascio' per errore :)


Solo qualcosa di semplice da provare - potresti aver già provato. Fare clic con il tasto destro del mouse sulla soluzione in Esplora soluzioni, fare clic su "soluzione pulita" per eliminare tutti i file compilati e temporanei associati a una soluzione .

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

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


Sono stato in grado di correggere l'errore semplicemente impostando l'opzione in "Collega al processo" in "Determina automaticamente il tipo di codice per il debug", come mostrato nello screenshot allegato.

Segui semplicemente i passaggi seguenti:

  • Vai a Debug dalla barra dei menu
  • Fare clic su Allega alla procedura
  • Vicino all'opzione Collega a , fare clic sul pulsante Seleziona
  • Apparirà la finestra Seleziona tipo di codice
  • Ora seleziona l'opzione Determina automaticamente il tipo di codice da eseguire per il debug e fai clic sul pulsante OK.


Stavo integrando un'applicazione C # con una libreria statica usando VS10 - che sono nuovo. Ho scritto una dll di codice gestita per interfacciarli. Potrei impostare punti di interruzione ovunque, ma la lib di elettricità statica. Ho ricevuto il messaggio sopra descritto - nessun simbolo è stato caricato per questo documento. Ho provato molti dei suggerimenti sopra. Ho potuto vedere che i simboli non venivano caricati. Ho finalmente notato una casella di controllo Configurazione debug, Abilita il debug del codice non gestito. Questo mi ha permesso di impostare i punti di interruzione nelle funzioni di lib static.





breakpoints