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





studio debug (26)


Nel mio caso sto cercando di eseguire il debug in modalità relase. Una volta lo cambio in modalità di debug. Sta funzionando

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.




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.




Invece di fare tutte queste cose solo

Chiudi e riapri

la soluzione risolverà il problema




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.




Solo webapplications (IIS Express):

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




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.




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.




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




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.




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




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




Cose da verificare solo per essere chiari: assicurati di avere la configurazione impostata su "Debug" e non su "Release". È possibile eseguire il debug del progetto di avvio in modalità 'Rilascio', ma non di una libreria di classi di riferimento.




Prova a eseguire Visual Studio come amministratore di Windows.




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.




Debug > Windows > I Modules per vedere quali moduli sono stati caricati mi portano nella giusta direzione.

Nel mio caso, IIS Express sembrava caricare una DLL diversa dai file temporanei di ASP.NET.

La soluzione?

  1. Passare a C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs
  2. Elimina tutto in questa directory!



L'opzione "Avvia debug, Debug + Windows + Modules" non esiste nell'edizione 2013 di Microsoft Visual Studio Express.

Deselezionando "Usa modalità di compatibilità gestita" in Strumenti, Opzioni di debug risolve questo problema.




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)




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




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 .




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




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




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!




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.




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.




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 ottenendo "il punto di interruzione non sarà colpito ... nessun simbolo caricato ..." per un progetto di sito web. Ho scoperto che c'erano errori di compilazione nel mio sito Web (una delle dll di riferimento è scomparsa per qualche motivo). Le ricostruzioni non hanno mostrato il problema finché non ho selezionato Visualizza => Elenco errori in VS2010, prima della ricostruzione. Sostituendo la dll mancante nella directory bin e aggiornando il riferimento risolto il mio problema.





c# .net visual-studio debugging breakpoints