WinDbg tarda mucho tiempo en cargar símbolos; está buscando en todos los directorios de la red grande UNC symbol store

He pasado varios días intentando acelerar la carga de símbolos al depurar volcados de memoria utilizandoWinDbgy no puedo superar un problema en particular.

El problema es que cuando los símbolos para un módulo en el volcado no existen en ninguna tienda de símbolos accesible o ubicación del servidor de símbolos (por ejemplo, son módulos de terceros sin símbolos disponibles), WinDbg pasará literalmente horas buscándolos.

He configurado la ruta de mi símbolo correctamente para configurar correctamente el orden de búsqueda y los directorios de caché:

.sympath cache*C:\SymbolCache1;\\our.corp\SymbolStore;SRV*C:\SymbolCache2*http://msdl.microsoft.com/download/symbols

Corriendo con!sym noisy y.reload /f Puedo ver:

SYMSRV:  Notifies the client application that a proxy has been detected. 
SYMSRV:  Connecting to the Server: http://msdl.microsoft.com/download/symbols. 
SYMSRV:  Successfully connected to the Server. 
SYMSRV:  Sending the information request to the server. 
SYMSRV:  Successfully sent the information request to the server. 
SYMSRV:  Waiting for the server to respond to a request. 
SYMSRV:  Successfully received a response from the server. 
SYMSRV:  Closing the connection to the Server. 
SYMSRV:  Successfully closed the connection to the Server. 
SYMSRV:  c:\SymbolCache1\Some3rdParty.dll\0060D200cd1000\Some3rdParty.dll not found 
SYMSRV:  c:\SymbolCache2\Some3rdParty.dll\0060D200cd1000\Some3rdParty.dll not found 
SYMSRV:  http://msdl.microsoft.com/download/symbols/Some3rdParty.dll/0060D200cd1000/Some3rdParty.dll not found 
<---- !!!! hanging here with *BUSY* showing in WinDbg

Mediante la ejecuciónMonitor de proceso en el punto en el que está colgando, puedo ver que WinDbg está buscando lo que parece sercada directorio en nuestra tienda de símbolos de red gigante (\ our.corp \ SymbolStore) buscando símbolos, incluso en directorios para módulos que no están claramente relacionados.

Lo extraño es que en WinDbg puede ver que ha extraído la marca de tiempo del módulo (0060D200cd1000) y lo está utilizando para buscar en la ubicación esperada en los directorios locales y el servidor de símbolos de MS. No puedo entender por qué está haciendo un escaneo completo de nuestra tienda de símbolos de red (masiva). ¿Quizás haya algo único en cómo trata las rutas UNC?

Esta búsqueda puede tomar 15 minutos o más por símbolo, y si al volcado le faltan muchos símbolos, esto puede causar un!analyze -v tomar horas (si está utilizando la integración de Visual Studio de WinDbg, hace que el bloqueo ocurra tan pronto como cargue un volcado por caída, ya que por alguna razón esa integración intenta cargar todos los símbolos inmediatamente a pesar de.symopt ajustes).

Este problema también es fácilmente reproducible si intenta cargar símbolos para un nombre de módulo inventado inexistente, p..reload /f bogus.dll.

Aquí está mi configuración de WinDbg .symopt:

0:000> .symopt
Symbol options are 0x30337:
  0x00000001 - SYMOPT_CASE_INSENSITIVE
  0x00000002 - SYMOPT_UNDNAME
  0x00000004 - SYMOPT_DEFERRED_LOADS
  0x00000010 - SYMOPT_LOAD_LINES
  0x00000020 - SYMOPT_OMAP_FIND_NEAREST
  0x00000100 - SYMOPT_NO_UNQUALIFIED_LOADS
  0x00000200 - SYMOPT_FAIL_CRITICAL_ERRORS
  0x00010000 - SYMOPT_AUTO_PUBLICS
  0x00020000 - SYMOPT_NO_IMAGE_SEARCH

He mirado por todas partes pensando que debe haber alguna bandera para controlar esto, pero parece que no puedo encontrarla.

Un par de cosas:

Esto no es un problema con la velocidad de la red o la falta de caché de símbolos local. El problema solo ocurre con símbolos que no se pueden encontrar, y solo con el almacén de símbolos UNC (por ejemplo, no con el servidor de símbolos de Microsoft)Ya probé SYMOPT_NO_PUBLICS en lugar de SYMOPT_AUTO_PUBLICSVerifiqué que mi ruta de símbolo es la que espero que sea, usando elsympath mando. También he intentado usar el_NT_SYMBOL_PATH variable de entorno en su lugar.Sé que puedo excluir ciertos símbolos a través de un archivo de configuración, pero esta no es una solución viable porque a veces el nombre del símbolo que falta no se conoce de antemanoHe visto a otra persona en Internet tener este mismo problema y lo mencioné en un foro de Microsoft en una publicación titulada "Mal rendimiento de WinDbg 6.11.1.404 cuando se apunta a un caché de símbolos grande"pero no recibió ayuda.

Respuestas a la pregunta(2)

Su respuesta a la pregunta