Skip to content

gitter-badger/diagnostics-courses

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About This Repository

This repository contains supporting materials for Sela's diagnostics courses. The instructor will direct you to specific labs as the course progresses. Before you start working on the labs, make sure to review the prerequisites document. It contains information on required software installations as well as some configuration steps you should perform on your system.

These materials are distributed under the GPL 2.0 license (see LICENSE).

Getting The Materials

You can use the Download ZIP button on the GitHub web interface to download a single .zip file with every file in this repository. Alternatively, you can clone the repository by using the GitHub for Windows desktop application, or by running the following command in a command prompt where you have access to the git.exe command-line tool:

git clone https://github.com/selagroup/diagnostics-courses.git

List of Labs

Note: For each lab below, [C++] indicates it's a lab that would mostly interest C++ developers; [C#] indicates that it's a lab that would mostly interest C# developers; and [kernel] indicates that it's a lab that would mostly interest driver developers. Labs not marked with either tag can be interesting for both audiences. In any case, if you are building a managed application that has some unmanaged components, you should consider working through all the labs.

  1. Analyzing I/O Activity with WPR and WPA
  2. Analyzing Unmanaged Heap Allocations with XPerf and WPA [C++]
  3. Diagnosing High CPU Utilization with PerfView
  4. Profiling CPU Work by Sampling with XPerf
  5. Profiling CPU Work by Sampling with VSPerfCmd
  6. Analyzing Startup Performance with PerfView
  7. Reducing .NET Allocations with PerfView [C#]
  8. Setting Up Continuous ETW Monitoring with PerfView
  9. Diagnosing a .NET Memory Leak with PerfView [C#]
  10. Inspecting GC Segments and Fragmentation with VMMap [C#]
  11. Collecting IntelliTrace Logs with the Stand-Alone Collector [C#]
  12. Generating Dump Files Automatically with WER
  13. Basic Dump Analysis with Visual Studio
  14. Dump File Memory Usage Analysis with Visual Studio [C#]
  15. Capturing Dump Files with DebugDiag
  16. Basic Managed Dump Triage with WinDbg [C#]
  17. Basic Unmanaged Dump Triage with Windbg [C++]
  18. Exploring WinDbg Commands [C++]
  19. Exploring SOS Commands [C#]
  20. .NET Memory Leak Analysis with WinDbg and SOS [C#]
  21. Advanced Memory Leak Analysis with SOS [C#]
  22. Analyzing a .NET Memory Leak with DebugDiag [C#]
  23. Locks and Wait Analysis with WinDbg and SOS [C#]
  24. Locks and Waits Analysis with WinDbg [C++]
  25. Catching an Unmanaged Heap Corruption [C++]
  26. Catching a VTable Corruption [C++]
  27. Analyzing Stack Corruptions [C++]
  28. Analyzing an Unmanaged Memory Leak with WinDbg and VMMap [C++]
  29. Diagnosing Handle Corruptions and Leaks
  30. Automatic Dump Analysis with CLRMD
  31. Implementing a Stack Dumper Utility with CLRMD [C#]
  32. Running Heap Queries on Live Processes with CLRMD [C#]
  33. Analyzing UI Delays with the Visual Studio Concurrency Visualizer

Copyright (C) Sela Group, 2007-2016. All rights reserved.

About

Materials for Sela's debugging and performance courses

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 85.0%
  • C++ 5.8%
  • JavaScript 5.0%
  • HTML 3.3%
  • CSS 0.4%
  • C 0.4%
  • Other 0.1%