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




15 Answers

Prima prova a ricostruire il tuo progetto facendo clic con il tasto destro del mouse sul progetto> Ricostruisci Se non funziona, prova una pulizia del progetto (fai clic con il tasto destro del mouse sul progetto> pulisci)

Se non funziona, verifica questo:

  1. Fai clic con il pulsante destro del mouse sul tuo progetto
  2. selezionare [Proprietà]
  3. selezionare la scheda [Costruisci]
  4. assicurarsi che [Definisci costante DEBUG] e [Definisci costante TRACE] siano selezionati
  5. Fai clic sul pulsante [Avanzate] nella parte inferiore della pagina di creazione
  6. Assicurati che [Informazioni debug:] sia impostato su [completo]
  7. Fare clic su [OK] e ricostruire il progetto ;-)

(il passaggio 6 genera i file .pdb, questi sono i simboli di debug)

c# .net visual-studio debugging breakpoints

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.




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




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):




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.




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.




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




Abbiamo trovato la causa del nostro problema. Questo codice utilizzava l'attributo "CodeBehind" nella direttiva Page del file .aspx invece dell'attributo "CodeFile" (ASP.NET 2.0 e versioni successive). Dopo giorni di disperazione, una semplice ricerca e sostituzione ha risolto il problema.




Ho provato tutto quanto sopra menzionato, ma non ha funzionato. [Pulisci la soluzione e controlla i file PDB, ecc.]

Anche pubblicare la stessa soluzione non ha risolto il problema.

Poi sono tornato a quello che di solito faccio per risolvere (ingannare questo testoso Visual Studio)

Tutto quello che ho fatto è stato fare un cambiamento deliberato nel codice e pubblicare la soluzione. Poi ho ripristinato il cambiamento e pubblicato di nuovo.

Voila [file PDB liberati dagli spiriti maligni] .. Non una risoluzione intelligente, ma questo ha funzionato .. Sorry




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!




Solo webapplications (IIS Express):

  • Fare clic con il pulsante destro su vassoio IIS Express e chiudere IIS.
  • Soluzione pulita




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.




Questo mi ha portato un po 'a provare altre opzioni sopra e per qualche strana ragione il debug ha smesso di funzionare.

Strumento-> Opzioni-> Debug-> Generale -> (untick) "Richiede che i file di origine corrispondano esattamente alla versione originale"




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.




Fai clic con il tasto destro su Progetto -> Proprietà -> Vai alla scheda Costruisci -> Deseleziona Ottimizza codice . Fallo per qualsiasi progetto nella tua soluzione




Related