2009-05-15 15 views
52

Ho installato Visual Studio 2005 per utilizzare i server dei simboli di Microsoft. Ho anche installato UltraMon, che inietta una DLL di aggancio in ogni processo. Ogni volta che avviare il debug la mia domanda MFC, Visual Studio dice:Impedisci a Visual Studio di provare a caricare i simboli per una particolare DLL

"Loading symbols for C:\Program Files\UltraMon\RTSUltraMonHookX32.dll..." 

per qualsiasi cosa, da un batter d'occhio a diverse decine di secondi. Non troverò mai quei simboli ... Posso dirlo di non preoccuparmi di guardare?

(Ho cercato di creare un file vuoto RTSUltraMonHookX32.pdb, ma Visual Studio vede che non è buono e porta a guardare.)

risposta

88

Non si può fare questo in un bellissimo modo grana, ma è possibile disattivare il simbolo caricamento automatico e quindi scegliere manualmente i simboli da caricare tramite la finestra Moduli (Debug - > Windows - > Moduli).

Per disabilitare automatica dei simboli di carico

  • Strumenti - > Opzioni - > debug - > Simboli
  • Controllare "Cercare i luoghi di cui sopra solo quando i simboli vengono caricati manualmente"
22

Verificate anche che non hai una variabile di ambiente "_NT_SYMBOL_PATH". Se hai questi simboli var caricherà indipendentemente dalle impostazioni VS.

1

È inoltre possibile impostare esclusioni server di simboli che non verranno tentate di scaricare in HKEY_CURRENT_USER \ Software \ Microsoft \ Symbol Server \ Exclusions o eventualmente anche HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Symbol Server \ Exclusions o tramite un file .ini in % WINDIR% \ system32 \ inetsrv \ Symsrv.ini (usa l'intestazione [esclusioni] e metti ciascuna esclusione sulla propria riga). Le esclusioni sono semplici corrispondenze di pattern, quindi usa msxml5. * Ad esempio.

+0

Sembra perfetto, ma non funziona per me. Ho aggiunto voci al registro e creato un symsrv.ini con le voci corrette al suo interno, e ho riavviato la mia macchina per ogni evenienza, ma ancora Visual Studio prova a caricare i simboli. Qualche idea? – RichieHindle

+0

Non funziona neanche per me. Ma per quanto ho capito, questo elenco è solo per PDB, non per DLL. – Calvin1602

1

Non solo lo _NT_SYMBOL_PATH può causare questo comportamento, ma per me era la variabile di ambiente _NT_ALT_SYMBOL_PATH che causa i ritardi.

(credo che ho aggiunto questa variabile quando si sperimenta con WinDbg)

18

da Visual Studio 2010 in poi, si può andare a:

Tools -> Options -> Debugging -> Symbols -> Specify excluded modules 

e entrare nella lista delle DLL che prendono troppo tempo per caricare. Io uso il percorso completo, dato dalla Finestra di output; forse accetta caratteri jolly o semplici nomi di file.

+1

Purtroppo non è disponibile in Visual Studio 2005, ma è bello sapere che è disponibile in una versione successiva. – RichieHindle

+1

@RichieHindle In effetti; ma IIRC, il metodo di JaredPar funziona in VC2005, però. – Calvin1602

+0

È possibile utilizzare effettivamente i caratteri jolly. Microsoft ha fornito un'interfaccia utente davvero confusa, non una singola nota sui possibili caratteri jolly. per esempio potrei disabilitare il caricamento del simbolo DevExpress aggiungendo "DevExpress *" nell'elenco. –

0

In Visual Studio 2013 Pro, se Microsoft Symbol Server è selezionato, VS tenterà di caricare tutti i simboli sul proprio server, causando molto tempo extra.

0
  • carico tutti i pacchetti simbolo dal sito MS manualmente, metterli su un drive SSD per la velocità :-)
  • Se si dispone di una variabile di ambiente "_NT_SYMBOL_PATH", rimuovere la parte "http://msdl.microsoft.com/download/symbols" da "SRV e: \ symbols * http://msdl.microsoft.com/download/symbols ", quindi hai solo il percorso simbolico in cui i tuoi simboli vivono scaricati in modo prezioso.
  • Ora avete il supporto per i simboli, ma che voleva essere scaricato da MS, ma caricato da unità
2

Nel mio caso è stato perché mi aveva messo "Attiva .Net Fonte Stepping" true in

Invece di impostarlo su false, ho impostato su "Attiva Just My Code" su true che imposta automaticamente "Enable .Net Source Stepping" su false. Mi ha dato un avvertimento prima di farlo:

Enabling Just my code automatically disabled .Net framework source stepping 

Il che suggerisce Just My Code e .Net source stepping sono escludono a vicenda.

Spero che questo aiuti qualcuno.

+1

Hai ragione .. – Bharat

Problemi correlati