Debugging and Profiling Qt applications on Windows

This training gives an introduction to various tools to help developers and testers in finding bugs and performance issues.

The tools presented cover a wide range of problems, from general-purpose debugging and CPU profiling to Windows-specific high-level analyzers. Often, it is relatively simple to run a tool, but interpreting the results, or even just using some of the more advanced tools, requires deep technical knowledge.

Course Contents:

This training focuses on tooling available to developers working with Microsoft Windows on the desktop.

The following tools will be covered:

Debugging:

  • general purpose debuggers: Visual Studio, CDB
  • memory error detectors: Application Verifier, AddressSanitizers
  • thread error detectors: ThreadSanitizer
  • tracing: Dependency Walker, Process Monitor, API Monitor
  • various Qt-builtin features
  • GammaRay to investigate internals of Qt applications
  • OpenGL: apitrace

Profiling:

  • CPU: Intel VTune Amplifier XE, Visual Studio, Windows Performance Analyzer
  • heap memory: Visual Studio, Windows Performance Analyzer
  • QML: QML profiler
  • OpenGL: apitrace, NVidia nSight

Testing:

  • Qt TestLib: unit tests and benchmarks
  • static code analysis: clang analyzer, Coverity, Clazy
  • code coverage: gcov

Download the full table of contents...

Course Information

This course is for:

Developers who want to find and fix problems

Prerequisites:

Knowing the basics of C++ and Qt

Duration:

3 days

Upcoming Courses

Start

Days

Location

Course

Language

Price ex. VAT

██████

███

███████████████

███

███

█████

███

██████

███

███████████████

███

███

█████

███

██████

███

███████████████

███

███

█████

███

* plus VAT if applicable

Why learn about Debugging and Profiling?

The time spent writing code is often dwarfed by the time required to find bugs and improve performance. This training makes your development workflow more efficient: You will learn what tool to use in which situation, and how to set it up and run it on an application. Finally, you will learn how to analyze and interpret the results obtained from the various tools.