Ingo Rammer ingo.rammer@thinktecture.com Production Debugging Ingo Rammer ingo.rammer@thinktecture.com.

Slides:



Advertisements
Ähnliche Präsentationen
Managed IT Operations Basis Managed Desktop Services 1.
Advertisements

.NET Users Group Karlsruhe Worum gehts? Goodby cmd.exe (ok ok, sie bleibt noch ein bisschen) Die Eingabeaufforderung erhält endlich einen.
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Design- und Entwicklungswerkzeuge
DI Christian Donner cd (at) donners.com
Webhosting unter Windows bei S+P AG 1. Vorstellung und Programm 2. Tarife mit ASP.NET bei der Schlund + Partner AG 3. Unterschiede / Features der Angebote.
Web Matrix Project Kurzüberblick Dirk Primbs Technologieberater Developer Platform Strategy Group Microsoft Deutschland GmbH.
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Lightweight Directory Access Protocol
Windows auf öffentlichen PCs
WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK TotalView Debugger Vorgestellt von Marco Dyballa mail:
ilmenau.de Exploiting Pocket PC. ilmenau.de Exploiting Pocket PC PocketPC existiert seit über 5 Jahren (Windows CE seit ca. 10)
Die Skriptsprache Perl (5) Wolfgang Friebel DESY Zeuthen.
Die Skriptsprache Perl (8) Wolfgang Friebel DESY Zeuthen.
Mono und andere freie.NET Implementierungen. Implementierungen Microsoft.NET Framework Win32, Win64? Microsoft.NET Compact Framework WinCE (Mobile, Phone)
Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.
Erweiterung von Eclipse als Entwicklungs-Plattform aus Sicht des Eclipse-Boardmitgliedes TogetherSoft Together auf Basis von Eclipse.
Handling und Erstellung von: DLL, EXE, COM, DCOM
Der VFP Debugger - Coverage und Profiling. © 1999 TMN-Systemberatung GmbH Der VFP Debugger n Neues Aussehen, eigene Task n Erweiterte Möglichkeiten n.
Uwe Habermann Venelina Jordanova dFPUG – Silverlight Wizard.
Uwe Habermann VFX 10.0 Visual Extend Produktaktivierung.
PHP Pakete und Beispiele Webengineering Robert Lemke.
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 10 Die erste, eigene Klassenbibliothek (Level 100) Presenter: Daniel Walzenbach Technologieberater.
Lei Liu: Software-Tankstelle1 Schaffung einer internetbasierten Softwaretankstelle zur Herstellung der technischen Voraussetzungen für die Teilnahme.
Java for Process Control P.Wüstner - Zentrallabor für Elektronik (ZEL) - JfPC: eine neue Technologie für den plattform- unabhängigen Zugriff auf Prozeßperipherie.
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
Debugging, Logging, Monitoring, Tools
Kommunikation zwischen BS2000 Host und PC
Automatische Übersetzungen mit Google
Micrologica Communication Center ®
Windows Befehlsskript
Clustered Neuronal Network A C#.NET project for Compute Cluster Server 2003.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 11 Folie 2 Microsoft Internet Information Services (IIS)
Kostenlose Alternative zu Microsoft Office
SQL Server 2005 CLR-Integration
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Consulting and Solutions.NET Vortragsreihe – Vorstellung der Referenten Happy Arts Software Markus Kämmerer IT-Erfahrung seit 1987,
Präsentation von Sonja Pathe
Tools und Verfahren Steffen Krause Technologieberater Microsoft Deutschland GmbH
Seminar Internet Technologien
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH Christian Weyer Solutions Architect thinktecture.
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
… und was man damit machen kann.
Microsoft Student Partners
Uwe Habermann Venelina Jordanova VFX in Cloud.
Bonn-to-code.net Thomas van Veen Website:
Ispirer Systems Präsentation des Unternehmens Copyright (c) Ispirer Systems Ltd. Alle Rechte vorbehalten.
Oliver Spritzendorfer Thomas Fekete
Vortrag: Visual Basic Neuerungen Autor : Dennis Hoyer
Einführung in PHP.
Einführung in PHP 5.
Saia Service an PCD's Datensicherung
integration beim Drucken
Informatik Grundlagen, WS04, Seminar 7
Aufzeichnung von Usability-Daten im www. Client-Side Log : automatisch (maschinell) generiertes Protokoll Client : Rechner mit dem Browser des Users Server:
SQL Server nach MySQL Datenbank-Migration SQLWays – Software für Migration Präsentation Copyright (c) Ispirer Systems Ltd. Alle.
Warum IIS? Best of Microsoft Webserver
Zero Administration Kit für Microsoft® Windows® Jörg Kramer University Support Center.
Ingo Rammer thinktecture.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
C Tutorium – Debugging & Tracing – Knut Stolze. 2 Agenda Debugging & Debugger Tracing.
5 Memory Leaks, die auch in Ihrer.NET Anwendung sein könnten André Krämer Softwareentwickler, Trainer, Berater.
Microsoft Silverlight Autor: Christian Pirker. Inhalt Einführung Silverlight Einführung XAML Silverlight 1.0 und 1.1 Silverlight 2.0 Silverlight 3.0 Ausblick.
Application Infrastructure Technologies Extending OnPremise EAI to the Cloud Wilfried Mausz BSc. dataformers GmbH Lothar Mausz dataformers.
IIS The microsoft way. © Windows NT Option pack optionale Server Komponenten IIS (Internet Information Server) Webserver von Microsoft.
Programmierung unter VB.Net mit der IDE VisualStudio. Schritt für Schritt erklärt und beschrieben. Zielgruppe: Komplette Neueinsteiger mit fundiertem Computerwissen.
Workshop 1 Getting Started 2016 Boris Wylutzki
 Präsentation transkript:

Ingo Rammer ingo.rammer@thinktecture.com Production Debugging Ingo Rammer ingo.rammer@thinktecture.com

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 http://www.thinktecture.com ingo.rammer@thinktecture.com

… oder „Wenn nix mehr geht, geht doch noch was“

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

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

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

Nachfolger von cordbg (Common Object Runtime Debugger) 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

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)

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)

Low Level Debugger (auch Kernel Debugging) 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)

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

WinDbg und Exceptions WinDbg geht standardmässig bei einigen unmanaged Exceptions (Access Violations) in den Break-Modus SXE <event> -> Break SXI <event> -> Ignorieren SXN <event> -> 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)

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 <adr> -> Dump Object !da <adr> -> Dump Array !dso -> Dump Stack Objects (nicht präzise) !dumpheap –stat !dumpheap –type <klassenName> !gcroot <objektAdresse> Interessant zusammen mit HawkEye zum Identifizieren der Klassennamen von GUI-Elementen .dump /ma c:\dumps\mydump.dmp -> Dump (/ma: mini dump mit “All” Option)

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

ADPlus C:\> adplus –hang –p <PID> C:\> adplus –hang –pn <ProzessName> C:\> adplus –crash –p <PID>

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

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: http://www.thinktecture.com/SOSAssist

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)

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

In-depth support and consulting for software architects and developers { } In-depth support and consulting for software architects and developers http://www.thinktecture.com/ ingo.rammer@thinktecture.com http://blogs.thinktecture.com/ingo/