Simboli di caricamento di Visual Studio


166

Sto lavorando a un progetto ColdFusion da un po 'di tempo e Visual Studio ha iniziato a comportarsi in modo strano almeno per me.

Ho osservato che quando ho iniziato il debug, ha creato il progetto, ha avviato la distribuzione e la distribuzione è terminata e stava iniziando a caricare i simboli per il mio progetto.

Ma è stato molto lento e non so perché abbia iniziato a fare questo passaggio. Cosa posso aver fatto?

È necessario questo passaggio di caricamento del simbolo? Come posso disabilitarlo?

Nella finestra di dialogo Strumenti -> Opzioni -> Debug -> Simboli non è stata aggiunta alcuna posizione per il file Simbolo (.pdb). E ho indicato nella directory di debug del mio progetto il campo sottostante e ho selezionato la casella di controllo "Cerca nella directory sopra solo quando i simboli sono ....". Come devo impostare questa finestra di dialogo per disattivare il caricamento dei simboli?

Ho guardato nella finestra dei moduli quali simboli sono stati caricati, ma non mi dice nulla. Qual è il problema?

inserisci qui la descrizione dell'immagine


3
Ho provato tutte le risposte nel thread senza fortuna.
Johan Larsson,

3
Solitamente i simboli dovrebbero essere memorizzati nella cache e dovrebbero richiedere poco o nessun tempo per caricare, l'unica volta che noterai che il caricamento dei simboli è lento è se i simboli vengono caricati dai server dei simboli di Microsoft che è molto molto lento, ad esempio (non sempre molto lento ma lento nessuno meno), quindi un buon modo per provare e tentare di risolvere questo problema è quello di eliminare la cache dei simboli, basta andare su Debug -> Opzioni -> Debug -> Simboli e fare clic sulla cache dei simboli vuota, se non funziona potrebbe essere un altro problema del tutto, spero che questo avvantaggi qualcuno visto che la domanda ha 3 anni (:
daniel

Risposte:


266

Debug -> Elimina tutti i punti di interruzione ( http://darrinbishop.com/blog/2010/06/sharepoint-2010-hangs-after-visual-studio-2010-f5-debugging ) Dopo di che puoi usarli di nuovo, ma fallo una volta. Rimuoverà anche una sorta di punti di interruzione "non validi" e quindi il caricamento dei simboli sarà di nuovo veloce. Stavo inseguendo questo problema da giorni :(.


4
Gli utenti di Visual Web Developer 2010 Express possono premere CTRL + MAIUSC + F9 e un prompt "Vuoi eliminare tutti i punti di interruzione?" apparirà. È necessario almeno un punto di interruzione attivo (non è sicuro se i punti di interruzione di sfondo problematici contano, quindi impostarne uno). Grazie! Molto più veloce ora ...
Cymen,

Che stella! Grazie mille.
user489998,

In effetti funziona! Incredibile! Qualcuno ha già segnalato questo evidente bug a Microsoft?
real_yggdrasil,

Sei un inizio, questo mi sta facendo impazzire da giorni. Grazie mille!
markpcasey,

Bene, è stato inaspettato! Ha funzionato davvero. Mi hai salvato la giornata, grazie mille!
tmatuschek,

132

Un altro motivo per il caricamento lento è se hai disabilitato "Abilita solo il mio codice" nelle opzioni di debug. Per abilitare questo vai a:

Tools -> Options -> Debugging -> General -> Enable Just My Code (Managed Only) 

Assicurati che sia selezionato.


L'opzione "Just My Code" non è disponibile nella finestra di dialogo Opzioni in alcune versioni Express di Visual Studio (è in Visual C # 2010 Express, tuttavia), ma può essere modificata con altri mezzi: Come disabilitare 'Just My Code "in Visual Basic 2005 Express? .
Peter Mortensen,

3
Questo è quello che l'ha risolto per me ... non la risposta "Elimina tutti i punti di interruzione".
Mark Brittingham,

Questa è solo la peggiore opzione in Visual Studio. Molto meglio disabilitare semplicemente il caricamento dei simboli in modo da poter vedere ancora lanci di eccezioni e stack frame che sono semplicemente simboli mancanti. (Solo un numero difficile da leggere invece di un nome). Certo, di solito lavoro sul codice del sito Web, quindi sotto di me c'è un sacco di IIS che può fallire. Normalmente la deselezione dei server di simboli Microsoft (e tutti i remoti) come fonte di dati funzionerà.
ebyrob

Mi hai salvato la mezza giornata ...! : D
Vaibhav Deshmukh,

43

Configurare in Strumenti, Opzioni, Debug, Simboli.

Puoi guardare la finestra di output (vista, output) per vedere cosa sta facendo di solito. Se è davvero lento, probabilmente significa che sta colpendo un server di simboli, probabilmente di Microsoft, per scaricare i simboli mancanti. Questo richiede tre hit HTTP per ogni file che non riesce a trovare ad ogni avvio: a volte puoi vederlo nella barra di stato in fondo o, ad esempio, in Fiddler. Puoi vedere quali moduli hanno caricato simboli in Debug, Windows, Moduli mentre esegui il debug.

I simboli indicano che è possibile ottenere utili informazioni sulla traccia dello stack in assiemi di sistema e di terze parti. Ne hai sicuramente bisogno per il tuo codice, ma penso che vengano caricati a prescindere. La soluzione migliore è disattivare qualsiasi sorgente di simboli non locali in quel menu e, se stai caricando molti simboli per assiemi di sistema in cui non è necessario eseguire il debug, puoi disabilitarli temporaneamente per accelerare l'avvio del debug - ma sono spesso utili da caricare.


3
Nella finestra di dialogo Strumenti -> Opzioni -> Debug -> Simboli non è stata aggiunta alcuna posizione per il file Simbolo (.pdb). E ho indicato nella directory di debug del mio progetto il campo sottostante e ho selezionato la casella di controllo "Cerca nella directory sopra solo quando i simboli sono ....". Non so come devo impostare questa finestra di dialogo per disattivare il caricamento dei simboli.
Arnoldino,

1
Hmm, non lo so allora. Per eseguire il debug è necessario caricare simboli per il proprio codice, quindi non credo che si desideri disattivarlo completamente. Immagino che poi guarderei la finestra dei moduli per vedere quali fossero i simboli caricati, capire quali fossero effettivamente necessari e quindi forse eliminare i .pdbs dalla cache dei simboli per quelli che non vuoi?
Rup,

1
Controlla "usa microsoft symbol server", esegui il codice una volta, quindi tutti i simboli sono nella cache. Ora puoi deselezionare la casella per aumentare la velocità.
john ktejik,

1
Disabilitare Microsoft Symbol Server in Strumenti -> Opzioni -> Debug -> Simboli risolto questo problema per me. Prima stavo aspettando 30 secondi per l'avvio del debug. Adesso è solo un secondo o giù di lì.
Mike Chamberlain,

41

Ho appena avuto questo problema.

L'ho risolto navigando su:

Strumenti -> Opzioni -> Debug -> Simboli

Quindi deselezionando tutte le fonti non locali per le posizioni dei file Symbol (.pdb)

ad es. Microsoft Symbol Server e msdl.microsoft.com/download/symbols


23

Ho affrontato un problema simile. Nel mio caso avevo impostato _NT_SYMBOL_PATH per il download dai server Microsoft per l'utilizzo in WinDbg e sembra che quando impostato, Visual Studio lo utilizzerà senza alcun modo per ignorarlo. La rimozione di quella variabile di ambiente ha risolto il mio problema.


Questo ha risolto il problema anche per me (immagino che il basso numero di voti sia dovuto al basso numero di persone che hanno impostato questa variabile ...) Grazie!
Aasmund Eldhuset,

Anch'io. Pensavo di poterlo deselezionare dai simboli, ma no, è necessario rimuovere / rinominare env var.
codekaizen,

16

Puoi provare la seguente risposta al debug / caricamento di Visual Studio molto lentamente :

  1. Vai su Strumenti -> Opzioni -> Debug -> Generale

  2. CONTROLLA il segno di spunta accanto a "Abilita solo il mio codice".

  3. Vai su Strumenti -> Opzioni -> Debug -> Simboli

  4. Fare clic sul pulsante "..." e creare / selezionare una nuova cartella da qualche parte sul computer locale per memorizzare i simboli memorizzati nella cache. Ho chiamato il mio "Symbol caching" e l'ho inserito in Documenti -> Visual Studio 2012.

  5. Fai clic su "Carica tutti i simboli" e attendi che i simboli vengano scaricati dai server di Microsoft, il che potrebbe richiedere del tempo. Si noti che il pulsante Carica tutti i simboli è disponibile solo durante il debug.

  6. Deseleziona il segno di spunta accanto a "Microsoft Symbol Server" per impedire a Visual Studio di eseguire query in remoto sui server Microsoft.

  7. Fai clic su "OK".

Prova anche a eliminare tutti i punti di interruzione (Debug> Elimina tutti i punti di interruzione),

Vedi anche : Visual Studio 2015 RC1 si blocca in modalità debug durante il caricamento dei simboli


6

Per me, sembra correlato ai punti di interruzione, come indicato nella risposta accettata. Tuttavia, ho trovato due soluzioni alternative che non comportavano l'eliminazione di tutti i punti di interruzione:

  • Il riavvio di Visual Studio sembrava risolverlo temporaneamente.
  • Facendo clic sul pulsante "X" per chiudere Visual Studio durante il debug, viene visualizzato il messaggio "Vuoi interrompere il debug?" finestra di messaggio da visualizzare; mentre questa finestra di messaggio è attiva, i simboli si caricano a velocità ordinarie. Una volta caricati tutti i simboli, è possibile fare clic su "No" per annullare la chiusura.

3
grazie per questa folle soluzione (con il messaggio "vuoi interrompere il debug"). ho provato prima le altre risposte, ma finora solo la "X" rossa e il trucco "vuoi ..." stanno aiutando. grazie, stavo perdendo la sanità mentale ...
pestofago

2
@que: Heh, prego! L'ho scoperto per caso. Sembra che VS abbia un ciclo di messaggi separato in cui va per quella finestra di dialogo modale, quindi ogni volta che è lento per nessun motivo aprire la finestra di dialogo a volte aiuta :-)
Cameron

6

Ho appena riscontrato questo problema. L'eliminazione dei punti di interruzione non ha funzionato, o almeno non solo. Dopo questo errore sono andato su Strumenti> Opzioni> Debug> Simboli e "Svuota cache simboli"

e quindi ha pulito la soluzione e ricostruita.

Ora sembra funzionare correttamente. Quindi, se provi tutte le altre cose elencate, e non fa ancora alcuna differenza, queste ulteriori informazioni possono aiutare ...


2

Nel mio caso Visual Studio stava cercando PDB di terze parti in percorsi che, sulla mia macchina, facevano riferimento a un'unità ottica. Senza un disco nel vassoio ci sono voluti circa Windows circa ~ 30 per fallire, il che a sua volta ha rallentato Visual Studio nel tentativo di caricare i PDB da quella posizione. Maggiori dettagli sono disponibili nella mia risposta completa qui: https://stackoverflow.com/a/17457581/85196


2

Ho avuto lo stesso problema e anche dopo aver disattivato il caricamento del simbolo, il caricamento del modulo in Visual Studio è stato terribilmente lento.

La soluzione era disattivare il software antivirus (nel mio caso NOD32) o meglio ancora, aggiungere eccezioni ad esso in modo che ignori i percorsi da cui il processo sta caricando gli assembly (nel mio caso è la cartella GAC ​​e l'ASP temporaneo Cartella di file .NET).


2

I miei 2 centesimi,

Stavo riscontrando un problema simile durante il tentativo di ottenere un rapporto di diagnostica (Visual Studio 2013) in modalità di rilascio x64 (campionamento CPU) e mentre venivano caricati i simboli per i file dll necessari, i simboli per il mio eseguibile non sarebbero riusciti.

Non ho modificato nulla nel menu Simboli, ho invece apportato alcune modifiche nelle Pagine delle proprietà del thread del mio eseguibile in Esplora soluzioni, ovvero

Proprietà di configurazione / Generale / Abilita generazione incrementale gestita su SÌ

Proprietà di configurazione / Debug / Unisci ambiente a NO

Proprietà di configurazione / C / C ++ / Abilita Sfoglia informazioni su SÌ (/ FR)

Proprietà di configurazione / Linker / Abilita collegamento incrementale a SÌ (/ INCREMENTALE)

EDIT: Quest'ultimo fa il trucco

....

Proprietà di configurazione / Linker / Debug / Genera informazioni di debug su Sì (/ DEBUG)

....

Dopodiché ha funzionato e ha caricato bene i simboli. Sono sicuro che uno o più dei precedenti hanno fatto il trucco per me (anche se non sono sicuro esattamente quale) e voglio solo far sapere agli altri e provare questo ..

pace


1

Prova a fare clic con il pulsante destro del mouse su uno dei punti di interruzione, quindi scegli "Posizione". Quindi selezionare la casella di controllo "Consenti al codice sorgente di differire dalla versione originale"


1

Opzioni di "accelerazione" del simbolo di debug di Visual Studio 2017, supponendo che non sia già impazzito per la personalizzazione delle opzioni:

  1. A Tools -> Options -> Debugging -> Symbols
    a. Abilitare l'opzione "Microsoft Symbol Server"
    b. Fare clic su "Svuota cache simboli"
    c. Imposta la cache dei simboli su un punto facile da trovare, come C:\dbg_symbolso%USERPROFILE%\dbg_symbols
  2. Dopo aver rieseguito il debug, lascia che carichi tutti i simboli una volta, dall'inizio alla fine, o per quanto ragionevolmente possibile.

1A e 2 sono i passaggi più importanti. 1B e 1C sono solo utili modifiche per aiutarti a tenere traccia dei tuoi simboli.

Dopo che l'app ha caricato tutti i simboli almeno una volta e il debug non si è interrotto prematuramente, tali simboli dovrebbero essere caricati rapidamente alla successiva esecuzione del debug.

Ho notato che se cancello un'esecuzione di debug, devo ricaricare quei simboli, poiché immagino che siano "ripuliti" se introdotti di recente e improvvisamente cancellati. Capisco la logica fondamentale per quel tipo di flusso, ma in questo caso sembra mal pensato.


0

Deselezionando "Abilita debug JavaScript per ASP.NET (Chrome e IE)" in Strumenti-> Opzioni-> Debug-> Generale, ho risolto il mio caso con indisponibilità per avviare il debugger VS2017 con punti di interruzione preimpostati.


0

L'unica cosa che ha funzionato per me è stata la modifica del tipo di codice.

Nella finestra Allega al processo , ho modificato la selezione Allega a: per determinare automaticamente il tipo di codice da eseguire per il debug , quindi i miei punti di interruzione sono stati raggiunti.

In precedenza avevo selezionato solo il codice nativo .


0

Ho avuto un problema simile in cui Visual Studio continua a caricare il simbolo e rimane bloccato.

Si è scoperto che ho aggiunto alcuni "argomenti della riga di comando" nelle opzioni di debug e uno dei parametri non è valido (dovrei passare alcuni valori). inserisci qui la descrizione dell'immagine

Dopo aver rimosso il parametro aggiuntivo, ricomincia a funzionare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.