Embedded Linux Debugging

Start date: 21 November 2022

Duration: 4 days in Nov 2022 (21-24 Nov is provisional), 8 hours / day

Location: Online

Certificate: N/A

Cost: Members € 450; Non-members € 675

Course code: N/A

Programme overview

This online course is an Embedded Linux debugging, profiling, tracing and performance analysis training course.
• Lectures delivered by the trainer: 50% of the duration
• Practical labs done by participants: 50% of the duration
Trainees can opt to follow lab demonstrations done by the tutor or to order the demo board and replicate the labs themselves (recommended).

Learning outcomes

The course training objectives are to enable participants to:

• Be able to understand why a system is loaded and what are the elements that
contributes to this load using common Linux observability tools.
• Be able to profile a complete userspace application and its interactions with
the Linux kernel in order to fix bugs using standard tools.
• Be able to analyze performance issues of an application (user/kernel) and understand
how to address them.
• Be able to analyze a kernel oops either live or post-mortem.
• Be able to debug and trace a kernel module by using KGDB and kprobes.
• Be able to profile a kernel module using perf, LTTNG and other tools.

Who is the course for?

This course is intended for companies and engineers interested in debugging, profiling and tracing Linux systems and applications, to analyze and address performance or latency problems.


• Knowledge and practice of UNIX or GNU/Linux commands: participants must be familiar with the Linux command line. Participants lacking experience on this topic should train themselves, for example with our freely available on-line slides at bootlin.com/blog/command-line/.
• Minimal experience in embedded Linux development: participants should have a minimal understanding of the architecture of embedded Linux systems: role of the Linux kernel vs. user-space, development of Linux userspace applications in C. Following Bootlin’s Embedded Linux course at bootlin.com/training/embedded-linux/ allows to fulfill this pre-requisite.


Day 1
Lecture – Linux application stack
Lecture – Common observability tools
Lab – Check what is running on a system and its load
Lecture – Debugging an application Lab – Solving an application crash

Day 2
Lecture – Tracing an application Lab – Debugging application issues
Lecture – Memory issues Lab – Debugging memory issues
Lecture – Application profiling Lab – Application profiling

Day 3
Lecture – System wide profiling and tracing Lab – System wide profiling and tracing
Lecture – Kernel debugging Lab – Kernel debugging

Please click on the “Full Course Details” link on the image above to view a more detailed PDF course description document.

Trainer Profile

Grégory Clement is an embedded Linux, kernel and realtime engineer at Bootlin, which he joined in 2010. Gregory started using GNU / Linux in 1998. Since 2002, he has acquired vast on the field experience in porting and operating embedded Linux, in particular for industrial and transportation customers.

Grégory performed multiple training sessions of our Embedded Linux kernel and driver development course.

As a trainer, Grégory is always keen to ensure that everyone gets the best of their practical labs, and always gets very good evaluations from participants.

Grégory Clement’s profile is available at:


Email Gerry.Byrne@midasireland.ie for bookings and queries