Wie sehe ich eine Demontage der Code-Maschine von der .net JITer erzeugt?
-
09-09-2019 - |
Frage
Wie kann ich eine Demontage der Code-Maschine von der .net JITer erzeugt? The Show Demontage Fenster Menüoption ist nicht, wo zu finden ist. Auch die Werkzeugleiste Taste ist im deaktivierten Zustand. Wenn ich mich richtig die Demontage erinnern in der Tat gesehen werden kann, aber muss man bis zu einem gewissen Trick zurückgreifen, leider weiß ich nicht mehr, was das Trick war. Kann jemand einige Hinweise geben Sie bitte hier?
Debugging-Umgebung: VS2008 (Ich denke, man die Demontage ohne viel Schmerz in WinDbg sehen und einige Debugger (schließt SOS.dll) Hmm, jetzt denke ich, dass gleiche DLL auch in VS2008 verwendet werden können, lassen Sie mich überprüfen und zurück? zu Ihnen. Bitte zögern Sie nicht, mich zu korrigieren, wenn ich falsch bin.)
Lösung 2
Hallo leider die Show Debug-Fenster Befehl immer noch nicht funktioniert, aber Sie können mit einer Debugger Erweiterung DLL namens SOS.dll zu debuggen erhalten, indem / zerlegen hier .net Code sind ein paar Links (beachten Sie, das funktioniert mit VS2008 und WinDbg). ..
1) MSDN: SOS-Debugging Extension (SOS.dll)
2) Einige allgemeine Tipps zur Verwendung von SOS mit Windbg
Andere Tipps
Das Zerlegen Fenster für mich funktioniert gut in einem C # -Projekt in VS2008 Team System Developer Edition.
Eigentlich - gibt es eine Sache, die Arbeit ist nicht, wie ich gehofft hätte - ich nicht in Framework-Code treten kann. Vielleicht gibt es einige Einstellung irgendwo, dass ich das machen könnte lassen, ich weiß es nicht. Aber ich kann für meine eigenen Code ganz gut throiugh der Demontage Schritt.
Sind Sie VS2008 Express verwenden? Vielleicht, dass einige Einschränkungen hat.
Es gibt immer CorDbg (igitt!).
Natürlich wird die JITer erzeugen nicht optimierten Code, wenn sie unter einem Debugger ausführen. Es kann einige Reifen, die Sie durch diese zu vermeiden, springen -. Wie in den Prozess Befestigung nach dem JIT seine Arbeit getan hat, für was auch immer Sie wollen, betrachten
Es scheint zu funktionieren gut für mich. Haben Sie Adresse Level-Debugging aktiviert haben? Tools | Optionen | Debugging | Allgemein | Aktivieren Adresse Level-Debugging?
das Zerlegen Fenster zu gelangen, um Debug gehen | Fenster | Zerlegen (Ich bin das c # -Entwickler Profil verwenden)
Oder im Fenster Befehl Debug.Dissassembly