Advanced .NET Debugging and Troubleshooting
(NETDBG, Live Instructor-Led Training, 4 days)

Dates and Pricing

Jan 23 to Jan 26, 2018$3,000/person Feb 20 to Feb 23, 2018$3,000/person Mar 20 to Mar 23, 2018$3,000/person


Introducing the Tools
Tools Overview
About .NET Framework Versions
CLR Profiler
Working with Performance Counters
Reflector for .NET
Managed Debugging Assistants
Mastering the CLR
CLR and the Windows Loader
Loading Native Images
Loading .NET Assemblies
Working with Application Domains
Application Domains: System, Shared and Default
The Assembly Manifest
About Type Metadata
The Sync Block Table
The Type Handle, Method Descriptors and Modules
Metadata Tokens
Debugging Tasks
About the Debugger and the Debugger Target
About Breaking and Resuming Code Execution
A Few Useful Debugging Tools
Loading Managed Code Extensions
Working with SOS and SOSEX
Controlling CLR Debugging
Setting Breakpoints
Breakpoints, JIT Functions and Not Yet Compiled Functions
Setting Breakpoints on Precompiled Assemblies
Setting Breakpoints on Generic Methods
Inspecting Code
About Code Inspection
Unassembling Code
Getting Method Descriptors
Showing IL Instructions
About CLR Internals Commands
Sync Blocks and Method Tables
The Managed Heap and the Garbage Collector
Working with Crash Dump Files
The Assembly Loader
CLR Loader Overview
About Assembly Identity
The Global Assembly Cache
Assembly Loading and the Context
About Load Context Failures
About Interoperability and DllNotFoundException
The Managed Heap and the Garbage Collector
About Windows Memory: Architecture and Concepts
Memory Allocation
Garbage Collection Internals
About Generations and Roots
About Finalization
Exploring Memory Reclaiming
About the Large Object Heap
Exploring Pinning
Understanding Garbage Collection Modes
Dealing with Corruption
Dealing with Fragmentation
Dealing with Out of Memory
Exploring Synchronization
Essentials of Synchronization
The Internals of Synchronization
About Thread Synchronization Primitives
Working with Events
Working with Mutex and Semaphore
Working with Monitor
Working with Thread Pools
The Object Header, Sync Blocks and Thin Locks
Dealing with Problems: Deadlocks, Orphaned Locks, Thread Abort and Finalizer Hang
Exploring Interoperability
About Platform Invocation
About COM Interoperability
Working with RCWs
Working with P/Invoque
Dealing with Delegates
Dealing with Interop Leaks and other COM Issues
Post-Mortem Analysis
About Working with Dump Files
Generating Dump Files
Debugging Dump Files
Dump File Analysis
About Object Inspection
Dumping Raw Memory
Dumping Value Types
Dumping Reference Types
Dumping Arrays
Dumping Stack Objects
Finding Object Sizes
Dumping Exceptions