Logging, tracing, instrumentering, debugging og fejlfinding
• Instrumentation
• End-to-End Tracing
• Historical Debugging
...
Instrumentation
Instrumentation
• The ability to monitor or measure a running system
• Trace program flow
• Log errors
• Diagnose performa...
• You are blind without!
• Fixing bugs faster
• Documentation
• Quality
Instrumentation - Tools
• Developer
• Log files
• IntelliTrace
• Windows EventLog
• Memory Dumps
• Event Tracing for Windo...
What to Instrument
• Program flow
• Major state changes
• Life-cycle events
• Start, stop, restart
• Some exceptions
• Not...
How to Log - Log Levels
• Critical
• System is unable to run
• insufficient resource
• access to file system
• database co...
End-to-End Tracing
Demo
TraceSource, E2E format, Service Trace Viewer, Cross-Process
Correlation, EventLog, Azure Live Tracing
System.Diagnostics
• Trace/Debug.WriteLine
• TraceSource improvements
• Service Trace Viewer
• E2E Tracing
• Correlation o...
Azure Live Tracing
<system.diagnostics>
<trace autoflush="true" />
<sources>
<source name="MyTraceSource"
switchValue="War...
Historical Debugging
File Bug
Resolve as
“No Repro”
Hand-off
to Test
Test Code
Hand-off
to Dev
Investigate
Bug
Write Code
It Works on My Machin...
IntelliTrace Capabilities
• Capture debugger state information during program execution
• IL is instrumented via Profiling...
How IntelliTrace WorksApplication
IntelliTrace File
CollectionPlan.xml
IntelliTrace Recorder
Demo
IntelliTrace - Historical debugger
Debugging Symbols
• Symbol Files
• .PDB files
• Used during the debugging process
• Includes Source File Names, Line Numbe...
Memory Dump Analysis
Debugging Tools for Windows
• WinDBG, ADPlus, s
os, Hawkeye…
• .loadby sos clr
• !clrstack –s
• !do 00f846bc
• !dumpstack
...
Demo
Dump File Analysis with Visual Studio
Windows Error Reporting (WER)
Event Tracing for Windows
Event Tracing for Windows
• Unified logging facility provided by the OS
• Kernel-level buffers
• Since Windows 2000
• Also...
System.Diagnostics.Tracing
• Managed support from .NET 4.0+
• EventSource
• EventListener
• Semantically rich
• Strongly-t...
ETW flow
ETL file
ETW
Event Providers
Event Providers
Control/Status
Control/Status
ETW Session
2. Any component that
has ...
Demo
_NT_SYMBOL_PATH, PerfView, Event Tracing for Windows
What’s new in Visual Studio 2013
Debugging and Diagnostics
• Edit and Continue support for x64
• Task debugging
• Graphics...
Demo
Parallel Task Debugging
Unhandled Exceptions
System.Windows.DispatcherUnhandledException += (sender, e) =>
{
// Log it
};
System.AppDomain.Current...
Glimpse
<system.diagnostics>
<sources>
<source name="Example Source" switchValue="Information">
<listeners>
<add name="Gli...
Logging, tracing, instrumentering, debugging og fejlfinding
• Instrumentation
• End-to-End Tracing
• Historical Debugging
...
EvaluationCreate a Text message on your phone and send it to 1919 with the
content:
DE304 5 5 5 I liked it a lot
Session C...
© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be...
Other GREAT web-oriented tools
Dump Files Analysis
Dump file summary
information
Support for
mixed-mode
dump files
IL Interpreter for
managed property
ev...
Campus days 2013 - Instrumentation
Campus days 2013 - Instrumentation
Upcoming SlideShare
Loading in …5
×

Campus days 2013 - Instrumentation

545 views

Published on

Logging, tracing, instrumentation, debugging and error handling as Campus Days 2013 i Copenhagen, Denmark

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
545
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide
  • This slide is mandatory
  • This slide is mandatory
  • This slide is optional
  • This slide is optional
  • This slide is optional
  • Create the EventLog Source by:eventcreate /ID 1 /L APPLICATION /T INFORMATION /SO cddk13 /D &quot;Event source cddk13 created&quot;
  • Collecting traces byusing Windows Azure Diagnostics: http://msdn.microsoft.com/en-us/library/windowsazure/gg433048.aspx
  • This slide is optional
  • Learn IntelliTrace: - http://blogs.msdn.com/b/visualstudioalm/archive/2013/04/22/learn-intellitrace.aspx - http://msdn.microsoft.com/en-us/magazine/ee336126.aspx
  • This slide is mandatory if you are doing demos
  • This slide is optional
  • This slide is mandatory if you are doing demos
  • http://blogs.msdn.com/b/visualstudioalm/archive/2013/06/20/using-visual-studio-2013-to-diagnose-net-memory-issues-in-production.aspx
  • This slide is optional
  • http://msdn.microsoft.com/en-us/magazine/cc163437.aspxhttp://msdn.microsoft.com/en-us/library/windows/desktop/bb968803(v=vs.85).aspx
  • http://msdn.microsoft.com/en-us/library/system.diagnostics.tracing.aspxhttp://msdn.microsoft.com/en-us/library/ms751538.aspxhttps://wptools.codeplex.com/
  • PerfViewTutorials: http://channel9.msdn.com/Series/PerfView-Tutorial
  • This slide is mandatory if you are doing demos
  • This slide is optional
  • This slide is mandatory – REMEMBER to flag the essense of getting evaluations
  • http://blogs.msdn.com/b/visualstudioalm/archive/2013/06/20/using-visual-studio-2013-to-diagnose-net-memory-issues-in-production.aspxWays to collect Dumps:ADPlus/WinDBVisual StudioTaskManagerProcess ExplorerMiniDumpWriteDumpProcDumpWindows Error Reporting (WER)
  • Campus days 2013 - Instrumentation

    1. 1. Logging, tracing, instrumentering, debugging og fejlfinding • Instrumentation • End-to-End Tracing • Historical Debugging • Semantic Logging
    2. 2. Instrumentation
    3. 3. Instrumentation • The ability to monitor or measure a running system • Trace program flow • Log errors • Diagnose performance issues • Consumers • System Administrators • Major program flow events • Critical issues • Performance Counters • Developers • Program flow with state • Verbose – call parameters etc.
    4. 4. • You are blind without! • Fixing bugs faster • Documentation • Quality
    5. 5. Instrumentation - Tools • Developer • Log files • IntelliTrace • Windows EventLog • Memory Dumps • Event Tracing for Windows • System Administrators • Windows EventLog • System Service Center
    6. 6. What to Instrument • Program flow • Major state changes • Life-cycle events • Start, stop, restart • Some exceptions • Not validation errors etc. • Security related events • Login attempts • Logging • Errors • Focus on external dependencies • I/O, Database, Web Service Requests • Correlate entries!!!
    7. 7. How to Log - Log Levels • Critical • System is unable to run • insufficient resource • access to file system • database connectivity • application start up failures • invalid config settings • Administrator attention required • Error • Exceptions that interrupts the user's actions • Warning • Resumable “errors” • Login attempts • SLA violation • Information • Life-cycle events • Major events • Trace • Program flow with state • Order initiated • Order approved • Order send • Debug • Verbose “debugging” information • Executed SQL statements • Full HTTP requests • Anything • s
    8. 8. End-to-End Tracing
    9. 9. Demo TraceSource, E2E format, Service Trace Viewer, Cross-Process Correlation, EventLog, Azure Live Tracing
    10. 10. System.Diagnostics • Trace/Debug.WriteLine • TraceSource improvements • Service Trace Viewer • E2E Tracing • Correlation of events • CorrelationManager • Common.Logging log.Debug(m => m("my expensive to calculate argument is: {0}", CalculateMessageInfo())); System.ServiceModel.OperationInvoker.CodeGeneration System.ServiceModel.Routing System.Transactions System.Web.Services.Asmx System.Windows.Data System.Windows.DependencyProperty System.Windows.Documents System.Windows.Freezable System.Windows.Interop.HwndHost System.Windows.Markup System.Windows.Media.Animation System.Windows.NameScope System.Windows.ResourceDictionary System.Windows.RoutedEvent System.Windows.Shell System.Workflow System.Workflow.Runtime.Hosting System.Workflow.Runtime System.Workflow.Runtime.Tracking System.Workflow.Activities System.Workflow.Activities.Rules System.Xaml.Hosting CardSpace Microsoft.Transactions.Bridge System.Activities System.Activities.Core.Presentation System.Activities.DurableInstancing System.Activities.Presentation System.ComponentModel.Composition System.IdentityModel System.IO.Log System.Net System.Net.Cache System.Net.Http System.Net.HttpListener System.Net.Sockets System.Net.WebSockets System.Runtime System.Runtime.Serialization System.Runtime.Serialization.CodeGeneration System.Security.Cryptography.Xml.SignedXml System.ServiceModel System.ServiceModel.Activation System.ServiceModel.MessageLogging
    11. 11. Azure Live Tracing <system.diagnostics> <trace autoflush="true" /> <sources> <source name="MyTraceSource" switchValue="Warning"> <listeners> <add name="azureListener" /> </listeners> </source> </sources> <sharedListeners> <add name="azureListener" type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, …" /> </sharedListeners> </system.diagnostics>
    12. 12. Historical Debugging
    13. 13. File Bug Resolve as “No Repro” Hand-off to Test Test Code Hand-off to Dev Investigate Bug Write Code It Works on My Machine!
    14. 14. IntelliTrace Capabilities • Capture debugger state information during program execution • IL is instrumented via Profiling API • Records program execution flow • Debugger, ASP.NET, ADO.NET, Exception, File, Registry, etc. • Records program data • Parameters • Return values • Low overhead for collection • Visual Studio Ultimate only debugging support
    15. 15. How IntelliTrace WorksApplication IntelliTrace File CollectionPlan.xml IntelliTrace Recorder
    16. 16. Demo IntelliTrace - Historical debugger
    17. 17. Debugging Symbols • Symbol Files • .PDB files • Used during the debugging process • Includes Source File Names, Line Numbers and Local Variable Names • You should always keep your symbol files around • Symbol Server • Central location for storing your PDB files • Essentially this is just a file share Microsoft’s public symbol server: http://msdl.microsoft.com/download/symbols
    18. 18. Memory Dump Analysis
    19. 19. Debugging Tools for Windows • WinDBG, ADPlus, s os, Hawkeye… • .loadby sos clr • !clrstack –s • !do 00f846bc • !dumpstack • !gcroot 00f846bc
    20. 20. Demo Dump File Analysis with Visual Studio
    21. 21. Windows Error Reporting (WER)
    22. 22. Event Tracing for Windows
    23. 23. Event Tracing for Windows • Unified logging facility provided by the OS • Kernel-level buffers • Since Windows 2000 • Also used by drivers • Insanely-fast • 1500-2000 cycles per entry • ~2.5% CPU usage for sustained rate of 10,000 events/sec on a 2GHz PC • Provider, Consumer, Controller model • Over 700 providers in Win7, ~900 in Win8! • System-wide collection
    24. 24. System.Diagnostics.Tracing • Managed support from .NET 4.0+ • EventSource • EventListener • Semantically rich • Strongly-typed! • Captures stack traces • Works everywhere • Windows Store Apps, Windows Phone, Azure.. • Semantic Logging Application Block
    25. 25. ETW flow ETL file ETW Event Providers Event Providers Control/Status Control/Status ETW Session 2. Any component that has been instrumented with Event Tracing API 1. Collection of configurable in-memory buffers that is managed by the kernel 3. Controls logging sessions and enables/disables providers 5. GUI trace analysis via graphs and summary tables 6. CLI trace analysis via actions Data flow XML file Control/Status PerfView PerfView System and Symbol Information Merged ETL file Control/Status Post Processing Action 4. Metadata injection
    26. 26. Demo _NT_SYMBOL_PATH, PerfView, Event Tracing for Windows
    27. 27. What’s new in Visual Studio 2013 Debugging and Diagnostics • Edit and Continue support for x64 • Task debugging • Graphics Diagnostics • Code Maps with Call Stacks
    28. 28. Demo Parallel Task Debugging
    29. 29. Unhandled Exceptions System.Windows.DispatcherUnhandledException += (sender, e) => { // Log it }; System.AppDomain.CurrentDomain.UnhandledException += (sender, e) => { // Log it }; System.Threading.Tasks.TaskScheduler.UnobservedTaskException += (sender, e) => { // Log it };
    30. 30. Glimpse <system.diagnostics> <sources> <source name="Example Source" switchValue="Information"> <listeners> <add name="GlimpseListener"/> </listeners> </source> </sources> <sharedListeners> <add name="GlimpseListener" type="Glimpse.Core.TraceListener, Glimpse.Core"/> </sharedListeners> </system.diagnostics>
    31. 31. Logging, tracing, instrumentering, debugging og fejlfinding • Instrumentation • End-to-End Tracing • Historical Debugging • Semantic Logging
    32. 32. EvaluationCreate a Text message on your phone and send it to 1919 with the content: DE304 5 5 5 I liked it a lot Session Code Anders Performanc e (1 to 5) Match of technical Level (1 to 5) Relevance (1 to 5) Comments (optional) Evaluation Scale: 1 = Very bad 2 = Bad 3 = Relevant 4 = Good 5 = Very Good! Questions: • Speaker Performance • Relevance according to your work • Match of technical level according to published level • Comments
    33. 33. © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
    34. 34. Other GREAT web-oriented tools
    35. 35. Dump Files Analysis Dump file summary information Support for mixed-mode dump files IL Interpreter for managed property evaluation Operating system and CLR version information Module Information Search modules

    ×