Voici ce que j'ai essayé:
Création d'une nouvelle application console (.NET Framework) dans Visual Studio 2017.
Ajout du code suivant:
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é les paramètres répertoriés ici: https://blogs.msdn.Microsoft.com/sburke/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code/ =
Les symboles confirmés sont chargés dans la fenêtre Modules:
mscorlib.dll Symboles chargés. 4.6.1586.0 construit par: NETFXREL2
Essayé: "Pas à pas (F11)"
Essayé: "Entrez dans le détail" | "System.Collections.Generic.Dictionary.TryGetValue"
Les deux ne font que franchir la ligne.
J'ai essayé de configurer VS en utilisant les détails ici: http://www.symbolsource.org/Public/Home/VisualStudio
Même résultat, le débogueur parcourt la ligne.
J'ai regardé la réponse ici: https://stackoverflow.com/a/12432029/297451
Mais cette version ne semble pas être une mise à jour de sécurité, et une recherche sur "site: support.Microsoft.com/kb 4.6.1586.0" ne donne rien.
Qu'est-ce que je fais mal?
Voici la réponse, merci à Hans Passant. Notez que cette solution soulève des questions supplémentaires.
Assurez-vous que https://referencesource.Microsoft.com/ contient la version exacte que vous déboguez.
Configurez Visual Studio comme spécifié ici: https://referencesource.Microsoft.com/setup.html
Vérifiez que les symboles sont chargés dans la fenêtre Modules, avec l'indexation des sources incluse.
Microsoft pourrait rendre ce processus beaucoup plus robuste en donnant des messages d'erreur utiles au lieu d'échouer en silence.
tilisez la fonction Symbol Server dans JetBrains dotPeek . A fonctionné comme un charme pour moi après avoir eu du mal à faire fonctionner la fonctionnalité standard:
Si cela ne fonctionne pas, c'est probablement parce que Visual Studio a précédemment téléchargé les "mauvais" symboles pour l'assembly en question à partir de Microsoft/NuGet, et les utilise au lieu de demander à dotPeek. Pour vérifier cela, démarrez le débogage et recherchez l'assembly approprié dans la liste des modules (Debug> Windows> Modules) - supprimez le fichier PDB au chemin affiché sous "Symbol File" pour cet assembly , puis redémarrez le débogage, et dotPeek devrait démarrer.