Debugging .NET Apps wird ab .NET4 besser…

Eines der größten Nachteile in der aktuellen .NET-Welt ist der sehr schlechte support für das Debuggen von MiniDumps. Dies ist aktuell nur mit sehr viel Aufwand möglich. Geschweige denn, dass es irgendeine Unterstützung gäbe um den .NET Source-Code anzuzeigen.
Es gab mal eine WinDbg-Version (6.7.5.0) die dies konnte. Das war aber ein “Missverständniss” und diese Version wurde 3 Tage später wieder aus der offizielen Seite entfernt. Der Grund ist wohl, dass hier undokumentierte Schnittstellen des CLR-Teams verwendet wurden. Und wie dies bei MS so üblich ist, kann man nicht einfach zwischen zwei Teams kommunizieren. Das geht nunmal nicht.
Das ist auch der Grund, warum nun von WinDbg-Team ganz offiziell die Zusammenarbeit mit dem CLR-Team beendet wurde. Es wird also in absehbarer Zeit keine .NET-Unterstützung in WinDbg geben (Anmerkung: sos.dll kommt *nicht* vom WinDbg-Team sondern vom CLR-Team!).

Auf der PDC wurde jetzt aber dieses Jahr doch ein neues “Konzept” für das Debuggen von .NET4-Applikationen vorgestellt. Es wurde (endlich) erkannt, dass es doch wichtig ist z.B. (Mini-) Dumps zu analysieren. Deshalb haben sie wohl das ganze Debugging in .NET4 umgestellt und diese Unterstützung auch mit eingebaut. Endlich mal gute Nachrichten für .NET.

Mehr Infos gibt es hier:
CLR 4.0 advancements in diagnostics

Die Neuerungen sind u.a.:

  • Managed dump debugging
  • Profiler attach (and detach) for memory diagnostics and sampling
  • Registry-free profiler activation
  • x64 mixed-mode debugging
  • lock inspection
  • Corrupted-state exceptions

4 thoughts on “Debugging .NET Apps wird ab .NET4 besser…

  1. Robert

    “Geschweige denn, dass es irgendeine Unterstützung gäbe um den .NET Source-Code anzuzeigen.” -> sollte doch eigentlich gehen? Man kann durch den Source Code vom .NET Framework debuggen.

  2. thomas

    Was ist mit den SOS Erweiterungen? Damit kann man zumindest mal Objekte im Garbage Collector anzeigen, Members abfragen… Schau mal bei Tess Ferrandez’ Blog vorbei, vielleicht gibts da auch was für .NET Source Code.

  3. jkalmbach Post author

    Mit der SOS-Extension kann man sehr viel machen. U.a. auch GC-Objekte anschauen. Schau Dir mal den “.NET Memory Profiler” an, der macht genau sowas.
    Was ich aber sagen wollte: WinDbg hat keine Unterstützung für .NET, da sich beide Teams bei MS nicht einig werden, wie denn eine “definierte” Schnittstelle aussehen soll. Deshalb gibt es “sos.dll” auch nicht vom WinDbg-Team, sondern vom CLR-Team! Und die haben es imme rnoch nicht geschafft, dass man endlich mal Source-Zeilen-Infos anzeigen kann…

Comments are closed.