Wie kann ich debuggen diese Codezeile in Visual Studio?
-
23-08-2019 - |
Frage
Ich habe die folgende Codezeile in VS2008.
VirtualPathData virtualPathData =
RouteTable.Routes.GetVirtualPath(_viewContext.RequestContext,
"Home",
pageLinkValueDictionary);
Ich mag diese GetVirtualpath(..)
Methode debuggen .. zu sehen, was es zu tun versucht.
Ich gehe davon aus ich brauche die Symbole aus dem MS-Symbol Server zu greifen.
Was ich tat, war
- Schalten Sie Aktivieren nur mein Code
- Schalten Sie Aktivieren Source-Server-Unterstützung
- Zeigen Sie die Module Fenster beim Debuggen (manuell das richtige Modul laden)
Übersetzen im Debug-Modus, setzen Sie einen Haltepunkt in der Zeile über und Debug-Durchlauf. Als ich die Leitung getroffen, ich lade manuell in System.Web.Routing(..)
von MS Symbol Server . Dies funktioniert (der PDB lokal heruntergeladen) und wenn ich in dieser Linie Schritt, ich gehe etwas Dissassemler Code: (
Kann jemand sehen, was ich falsch mache?
Lösung
Dass die Symbole Datei heruntergeladen wird, bedeutet nicht, dass die Quellen für sie verfügbar sind, muss die PDB-Quelle als auch indiziert werden.
Von Scott Guthrie Ankündigung :
Wir werden zunächst die Quelle anbieten Code (mit Quelldatei Kommentare im Lieferumfang enthalten) für die .NET-Basisklasse Bibliotheken (System, System.IO, System.Collections, Systemkonfiguration, System.Threading, System.Net, System.Security, System.Runtime, System.Text, etc), ASP.NET (System.Web), Windows Forms (System.Windows.Forms), ADO.NET (System.Data), XML (System.Xml) und WPF (System.Windows). Wir werden dann mehr Bibliotheken in den kommenden Monaten hinzugefügt vor (einschließlich WCF, Workflow und LINQ). Der Quellcode wird unter dem Microsoft Reference veröffentlicht License (MS-RL).
Es scheint System.Web.Routing ist hier nicht enthalten.
Sie können jedoch das MVC-Quelle herunterladen, dann sollten Sie in der Lage sein, die PDBS verwenden Sie heruntergeladen gegen diese Quelle.
Andere Tipps
sah mich jemand schon modded unten bekommt dies zu sagen, aber ...
Es scheint nicht, dass Sie eine Source-Level-Ansicht zu bekommen, was los ist, aber wenn Sie wirklich brauchen eine Antwort auf, warum etwas möglicherweise nicht funktionieren (und Stackoverflow kann nicht helfen), mit Reflector.NET C # -Code von der kompilierten Assembly (dLL oder eXE) ist eine ziemlich gute Option zu erhalten. Das Tool ist sehr einfach für jeden erfahrenen .NET-Entwickler zu verwenden, und einige sehr gute Einblicke in zur Verfügung stellen kann, was geschieht.
Viele von uns, die an der Vorderkante von .NET arbeiten Notwendigkeit , es zu benutzen, weil es oft keine andere schnelle Methode, und für diejenigen ohne MVP oder Microsoft-Seite Verbindungen ist es häufig die nur Weg, um die 'innere Geschichte' zu erhalten.
Ich bin ein wenig überrascht, dass es eine Symboldatei für die heruntergeladen; Ich das letzte Mal sah, gab es nur Symbole für eine kleine Teilmenge (hauptsächlich 2.0) des Frameworks. Haben Sie ein Problem mit diesem Code im Moment? Wenn ja, senden Sie Details der Ausnahme / unerwartetes Verhalten. Wenn Sie einfach nur neugierig sind, dann entweder ein: Lesen Sie die Dokumentation rel="nofollow, oder b: vielleicht wurde ein Snoop mit Reflektor (Einschränkung: „< a href = "http://en.wikipedia.org/wiki/IANAL" rel = "nofollow noreferrer"> IANAL ").
Sieht aus wie Sie .NET sprechen, so ist es eigentlich IL-Bytecode Sie sehen. Ich glaube nicht, Microsoft veröffentlicht Symbole mit Quellcode für .NET, so VS kann Ihnen nicht helfen.
Mit .NET Reflector zu untersuchen, was die Funktion der Fall ist.