Debugging and Profiling C++ applications on Linux

This is an introduction course to various tools that help developers and testers find bugs and identify performance issues in C++ applications on Linux. The tools presented cover a wide range of problems, from general-purpose debugging and CPU profiling to Linux-specific high-level analyzers.

Course Contents:

This training focuses on what a developer should know for being efficient on both desktop and embedded Linux.

The following tools will be covered:

Debugging:

  • general purpose debuggers: GDB, RR
  • memory error detectors: valgrind’s memcheck, AddressSanitizers
  • thread error detectors: ThreadSanitizer
  • tracing: ldd, strace
  • OpenGL: apitrace

Profiling:

  • CPU: valgrind’s callgrind, Linux perf, Intel VTune Amplifier XE
  • heap memory: valgrind’s massif, heaptrack
  • OpenGL: apitrace
  • System-wide: LTTng

Testing:

  • static code analysis: clang analyzer, Coverity
  • 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++

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.