Introduction
Discover the advanced debugger tools
()
What you should know
()
How to access the GitHub code
()
1. IntelliTrace
A quick look at the Diagnostics window
()
A quick look at the IntelliTrace tools
()
What you should know
()
Understand the iTrace files
()
Choosing what to save in iTrace files
()
View function calls in historical debugging
()
View snapshots in historical debugging
()
View IntelliTrace exceptions
()
View UI messages
()
View other events
()
View IntelliTrace timeline
()
2. Work with an iTrace File
Save an iTrace file while debugging
()
Archive PDB files for each version
()
Configure debug symbols path
()
Open iTrace file for recent build
()
Change source and PDB for older build
()
Diagnose problems after deployment
()
3. Use Diagnostics and Visualizer Window
Configure the CPU monitor
()
Analyze CPU usage with Diagnostics tools
()
Analyze CPU usage with Profiler
()
View CPU usage by function
()
Configure memory monitor
()
Analyze memory usage with Diagnostics tools
()
Analyze memory usage with Profiler
()
View memory details
()
4. Debug Multithreaded Code
Examine the sample application code
()
Freeze and thaw threads
()
Debug multithreaded code
()
Run the sample application
()
Overview of the thread debug windows
()
Debug with the Threads window
()
See worker threads in the Threads window
()
Show threads icons in the source editor
()
Debug with the parallel watch
()
Identify threads with custom names and Flags
()
View the Thread call stack
()
Examine the modified code for Parallel Stack
()
Use the Parallel Stack window
()
Conditional breakpoints from Thread ID
()
5. Interactive Code Maps
Enable code maps
()
Install code maps feature
()
Save the code map file
()
Open and debug with the code map file
()
Navigate call stack in code map
()
Add comments and flags to code map
()
Change code map layout
()
Enhance code map with type containers
()
Complete the map by adding all type members
()
6. Debugging Tips
Multiple breakpoints with Inline Breakpoints
()
Enhance debug sessions with DebuggerDisplay attribute
()
Recursive debugging with Parallel Watch window
()
Add breakpoints to all overloads with function breakpoints
()
Use debug commands to create lists of debug data
()
Conclusion
What's next
()