Jump to content

Akademy/2022/Thursday: Difference between revisions

From KDE Community Wiki
Adamszopa (talk | contribs)
No edit summary
Adamszopa (talk | contribs)
No edit summary
Line 1: Line 1:
== Training: Debugging and Profiling Qt applications on Linux ==
== Training: Debugging and Profiling Qt applications on Linux ==


''Note: this is the same training as the one given by Milian in 2020''


''Note: this is the same training as the one given by Milian in 2020''


This training is kindly provided by KDAB and will be conducted online by David Faure.
This training is kindly provided by KDAB and will be conducted online by David Faure.
Link to participate in training online: TBD
Link to participate in training online: TBD
Room at the University to join with others: TBD
Room at the University to join with others: TBD


{| class="wikitable"
{| class="wikitable"
Line 18: Line 21:
|}
|}


Details:
===Details===
Get up-to-speed with the latest Linux Qt debugging and performance tools
Get up-to-speed with the latest Linux Qt debugging and performance tools


Line 25: Line 28:
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.
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.


======
===Table of contents===
 
Table of contents:


Debugging on Linux:
Debugging on Linux:
Line 43: Line 44:
* memory usage: heaptrack
* memory usage: heaptrack


======
===Prerequisite===


Prerequisite:
Knowledge and experience programming with Qt and C++. Basic understanding of multithreaded programming.
Knowledge and experience programming with Qt and C++. Basic understanding of multithreaded programming.


Line 51: Line 51:


Topics include:
Topics include:
sanitizers ASAN/UBSAN/TSAN
* sanitizers ASAN/UBSAN/TSAN
linux perf, hotspot
* linux perf, hotspot
heaptrack
* heaptrack

Revision as of 20:01, 28 September 2022

Training: Debugging and Profiling Qt applications on Linux

Note: this is the same training as the one given by Milian in 2020


This training is kindly provided by KDAB and will be conducted online by David Faure.

Link to participate in training online: TBD

Room at the University to join with others: TBD


Schedule
11:00-13:00 CEST Part 1 - Debugging on Linux
13:00-15:00 CEST Lunch break
15:00-17:00 CEST Part 2 - Profiling on Linux

Details

Get up-to-speed with the latest Linux Qt debugging and performance tools

This training gives 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.

Table of contents

Debugging on Linux:

  • a debugger that allows to go back in time: RR
    • tracing: strace
    • memory error detectors: AddressSanitizers
      • thread error detectors: ThreadSanitizer
      • GammaRay to investigate internals of Qt applications


Profiling on Linux:

  • CPU: Linux perf, hotspot
  • memory usage: heaptrack

Prerequisite

Knowledge and experience programming with Qt and C++. Basic understanding of multithreaded programming.

We will cover what I consider the most essential debugging and profiling tools on Linux. I'll show you how to use the tools, how to interpret the results. We will talk about problems you may run into during setup. And we will discuss optimizations for certain types of code patterns.

Topics include:

  • sanitizers ASAN/UBSAN/TSAN
  • linux perf, hotspot
  • heaptrack