Debugging Linux Applications (Course 106 – 24 Hours)


Debugging Linux Applications is an advanced course for competent Linux programmers that wish to learn more about common failure modes of Linux applications and how to debug them with various tools and programming methods.

Course Objectives:

Understand common Linux application failure modes and efficiently debug them using advanced methods.

Who Should Attend:

Competent Linux programmers who wish to achieve a higher degree of understanding on common Linux application failure modes and advanced debugging techniques used to handle them.


Participants must have completed Linux Programming course or have equivalent knowledge (e.g. student must be able to write a multi-threaded Linux application that use a mutex to protect a shared variable before taking this course).

Course Contents:

A Course Introduction

  • Course Objectives
  • Course Delivery
  • Course Practical
  • Course Structure

Build time debugging assistance

  • Pre-processing info
  • Debugging information
  • ELF tools
  • Symbols, name mangling and map files, problems regarding symbols
  • Include paths, Lib paths
  • Dynamic loading

Using the GDB debugger efficiently

  • GDB overview
  • Useful commands
  • Remote debugging
  • Automation
  • Using Eclipse front end
  • DDD

Stack structure

  • What can go wrong?
  • Stacks and multi-threading
  • Stacks and Signals

Dynamic allocations and memory leaks

  • Allocating memory without de-allocation
  • De-allocating non allocated memory
  • De-allocating already de-allocated memory
  • Tools for detecting memory bugs

Multi-threaded applications

  • Synchronization mechanisms
  • Shared resources and keeping data integrity

Programmed debug assistance

  • Preparing your code for efficient debug and trace
  • Proper exception trapping and handling

Post-mortem activities

  • Debugging application at customer's site
  • Core dumps, crash data

Debugging Tools

  • Debugging Tools
  • Tracing Tools
  • Profiling tools
  • Misc. tools in the development process

Kernel Debugging

  • Kernel configuration for debug
  • Debug with printk
  • Debug with proc and sysfs
  • debugfs
  • kgdb
  • Tracing Tools

Download the PDF
שליחת הודעה
טלפון - 04-8571119
פקס - 04-8570307
דוא"ל -
דוא"ל -
כתובת - דרך בר יהודה 52, נשר
בית עופר - קומה שניינה