Esto es lo que he intentado:
Realicé una nueva aplicación de consola (.NET Framework) en Visual Studio 2017.
Se agregó el siguiente código:
static void Main(string[] args) { new Dictionary<int, int>().TryGetValue(3, out int x); //I want to step into TryGetValue() (this is just an example) }Configuró los ajustes enumerados aquí: https://blogs.msdn.microsoft.com/sburke/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code/
Los símbolos confirmados se cargan en la ventana Módulos:
Símbolos mscorlib.dll cargados. 4.6.1586.0 construido por: NETFXREL2
Intenté: "Pasar a (F11)"
Probado: "Paso a lo específico" | "Sistema.Colecciones.Genérico.Diccionario.TryGetValue"
Ambos simplemente pasan de la raya.
Intenté configurar VS usando los detalles aquí: http://www.symbolsource.org/Public/Home/VisualStudio
Mismo resultado, el depurador pasa por encima de la línea.
He mirado la respuesta aquí: https://stackoverflow.com/a/12432029/297451
Pero esta versión no parece ser una actualización de seguridad, y una búsqueda de "site:support.microsoft.com/kb 4.6.1586.0" no arroja nada.
¿Qué estoy haciendo mal?
Aquí está la respuesta, gracias a Hans Passant. Tenga en cuenta que esta solución plantea preguntas adicionales.
Asegúrese de que https://referencesource.microsoft.com/ contenga la versión exacta que está depurando.
Configure Visual Studio como se especifica aquí: https://referencesource.microsoft.com/setup.html
Confirme que los símbolos se cargan en la ventana Módulos, con la indexación de fuentes incluida.
Microsoft podría hacer que este proceso sea mucho más sólido al proporcionar mensajes de error útiles en lugar de fallar silenciosamente.
Utilice la función de servidor de símbolos en JetBrains dotPeek . Funcionó de maravilla para mí después de luchar para que la funcionalidad estándar funcionara:
Si esto no funciona, probablemente se deba a que Visual Studio descargó previamente los símbolos "incorrectos" para el ensamblado en cuestión de Microsoft/NuGet y los está usando en lugar de preguntar a dotPeek. Para verificar esto, comience a depurar y busque el ensamblaje relevante en la lista de módulos (Depurar> Windows> Módulos): elimine el archivo PDB en la ruta que se muestra en "Archivo de símbolos" para ese ensamblaje , luego reinicie la depuración y dotPeek debería entrar en acción. .