Get up-to-speed with the latest Linux Qt debugging and performance tools
This training gives your team an introduction to various tools which 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 Linux 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.
Introduction to Debugging & Profiling for Linux Qt development – Training Course Contents:
This training focuses on what a developer teams should know for being efficient on both desktop as well as embedded Linux.
The following tools will be covered:
Debugging on Linux:
- general purpose debuggers: GDB, RR
- memory error detectors: valgrind’s memcheck, AddressSanitizers
- thread error detectors: ThreadSanitizer
- tracing: ldd, strace
- various Qt-builtin features
- GammaRay to investigate internals of Qt applications
- OpenGL: apitrace
Profiling on Linux:
- CPU: valgrind’s callgrind, Linux perf, Intel VTune Amplifier XE
- heap memory: valgrind’s massif, heaptrack
- QML: QML profiler
- OpenGL: apitrace
- ystem-wide: LTTng
Testing on Windows and Linux:
- Qt TestLib: unit tests and benchmarks
- static code analysis: clang analyzer, Coverity, Clazy
- code coverage: gcov
Read the full Table of Contents
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, how to set it up and run it on an application. And, finally, you will learn how to analyze and interpret the results obtained from the various tools.
|Target Audience:||Developer teams who want to find and fix problems|
|Prerequisite:||Knowing the basics of C++ and Qt|
|Sign up:||Please contact us at firstname.lastname@example.org|
Our trainings run from 9:00 to 16:00 (with a one hour window for discussion afterwards, if necessary)