Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Production Debugging Ingo Rammer

Ähnliche Präsentationen


Präsentation zum Thema: "Production Debugging Ingo Rammer"—  Präsentation transkript:

1 Production Debugging Ingo Rammer

2 Ingo Rammer und Kleine Beratungsfirma für Softwareentwickler Unterstützung, Coaching und Beratung für Software-Architekten und -Entwickler –Architektur- und Code-Reviews –Prototypentwicklung und Architekturberatung –Coaching und Mentoring –Anwendungsoptimierung und Troubleshooting

3 … oder Wenn nix mehr geht, geht doch noch was

4 Ziel dieser 75 Minuten Tools Techniken Links Gewissheit: Sie können das Problem lösen!

5 Szenarien Applikationsfehler, die nicht ausreichend geloggt werden Verschluckte Exceptions, die im Produktivbetrieb essentielle Infos vernichten Anwendungen, die sich einfach so beenden Memory Leaks in grafischen Applikationen und in Server-Anwendungen … und kein Visual Studio weit und breit

6 Gemeinsamkeiten der Tools XCOPY – am Server muss nichts installiert werden Kostenlos Debugger kommen von Microsoft, Rest ist optional

7 MDbg Managed Code Debugger Nachfolger von cordbg (Common Object Runtime Debugger) Zwei unterschiedliche Versionen! –MDBG im SDK Supported –MDBG Sample als C# Quellcode IL Disassembler Grafische Oberfläche Unsupported

8 MDbg Kommandos ru -> Run (Starte Anwendung) at -> Attach (Laufenden Prozess debuggen) g -> Go (Äquivalent von F5 in Visual Studio) lo -> Load Module (z.B. LO ILDASM) ca ex -> Catch Exceptions w -> Wo bin ich? (Stack Trace) t -> Thread-Liste t -> Thread auswählen (z.B. t 3) p -> Print (Lokale Variable)

9 MDbg bei verschluckten Exceptions Drag und Drop der EXE auf MDbg –Alternativ: Start von Mdbg, dann Verwendung von Run oder Attach ca ex (Catch Exceptions) g (Go) Sobald die Exception auftritt: –w (Stack Trace) –g(Bei Bedarf: Go)

10 WinDbg Low Level Debugger (auch Kernel Debugging) Kennt.NET nicht, sondern grundsätzlich nur unmanaged code Erweiterungsmodul SOS (Son Of Strike) erlaubt Zugriff auf interne.NET Datenstrukturen Relativ komplex, bietet aber wichtige Features: –Memory Leak Analyse (alle existierenden Objekte) –Analyse von Memory Dumps –Remote Debugging über TCP/IP (auch mit TCP Forwardern als Relay-Stationen)

11 WinDbg Grundlagen.loadby sos mscorlib -> lade SOS aus dem Verzeichnis, aus dem mscorlib geladen wurde. Funktioniert erst, nachdem CLR im Zielprozess initialisiert wurde! G -> go (F5) CTRL+BREAK -> Break ~ -> Thread List ~#s-> Thread Auswahl (z.B. ~4s) !clrstack -> Stack Trace !help [cmd]-> Liste der SOS Funktionen.hh [cmd]-> Hilfe zu WinDbg Funktionen

12 WinDbg und Exceptions WinDbg geht standardmässig bei einigen unmanaged Exceptions (Access Violations) in den Break-Modus SXE -> Break SXI -> Ignorieren SXN -> Output SXE clr -> Break bei allen CLR Exceptions Wichtig: NullReferenceException, DivideByZero sind keine CLR Exceptions, sondern normale unmanaged Exceptions SXE av-> Break bei Access Violation (Null Ref, default) SXE dz-> Break bei Division durch Null (default)

13 WinDbg und Speicherleaks WinDbg kennt.NET primär nicht und kann daher mehr sehen als ein.NET Debugger !dumpheap -> Alle geladenen Objekte !gcroot -> Garbage Collection Pfade zu den Objekten !do -> Dump Object !da -> Dump Array !dso-> Dump Stack Objects (nicht präzise) !dumpheap –stat !dumpheap –type !gcroot Interessant zusammen mit HawkEye zum Identifizieren der Klassennamen von GUI-Elementen.dump /ma c:\dumps\mydump.dmp -> Dump (/ma: mini dump mit All Option)

14 Memory Dump Analyse ADPlus (Auto Dump Plus) –Erzeugt Memory Dumps sofort oder bei Exceptions (allerdings nur unmanaged) –Dumps sind im Allgemeinen zwischen 40 und 500 MB gross aber gut komprimierbar –Dumps beinhalten den gesamten Prozessspeicher und mehr –Zum Beispiel auch Rekonstruktion der geladenen DLLs und EXEs

15 ADPlus C:\> adplus –hang –p C:\> adplus –hang –pn C:\> adplus –crash –p

16 Global Flags Tool in den Debugging Tools für Windows Erlaubt das sofortige Starten eines Debuggers bei Programmstart Bei Services: Interact with Desktop muss aktiviert sein

17 DumpGen und SOS Assist SOS Assist: Grafisches Tools für WinDbg DumpGen: Erzeugung von Dumps Beide Tools: Kostenlos. In ständiger Entwicklung. Aktuell: Sehr frühe Preview Version Download nur für Teilnehmer unserer Debugging- Kurse oder Vorträge. Verteilung im Unternehmen ist natürlich ok. URL:

18 Logging und LogViewer Alle API Zugriffe können von WinDbg geloggt werden –Parameter und Rückgabewerte !load logexts-> Lade Logging Erweiterung !logm i *-> Inkludiere alle Module !loge c:\logs-> Starte Log in c:\logs (Enable) !logb f-> Flush des Log-Puffers !logd-> Log Beenden (Disable) Betrachtung mit LogViewer (ebenfalls Debugging Tools für Windows)

19 Downloads MDbg Sample –Google: mdbg sample WinDbg, CDB, GFlags –Google: debugging tools for windows Hawkeye –Google: hawkeye.net

20 In-depth support and consulting for software architects and developers {}


Herunterladen ppt "Production Debugging Ingo Rammer"

Ähnliche Präsentationen


Google-Anzeigen