Debugging Linux Applications

מק"ט: #9127 | משך קורס: 16 שעות אק'

Debugging Linux application is an advanced course which targets already competent Linux programmers who wish to learn more on common failure modes of Linux applications and how to debug them with various tools and programming methods.
The course is provided in cooperation with Codefidence ltd. the leading provider of Linux and Open Source knowledge to the OEM and VAR industry.

הקורס פעיל לקבוצות מטעם ארגונים בלבד, ניתן לשלוח פנייה רק אם מדובר בקבוצה
*שדות חובה
PDF version

מטרות

 

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

קהל יעד

 

Competent Linux programmers who wish to achieve a higher degree of understanding on common Linux application failure modes and advanced debugging techniques 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 application under Linux that use a mutex to protect a shared variable before taking this course.).

נושאים

Introduction

 

Memory overruns           

 

Build time debugging assistance

 

  • Pre-processing info

  • Symbols, name mangling and map files, problems regarding symbols

  • Include paths, Lib paths

  •  Dynamic loading

 

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

  • Valgrind

  • Dmalloc

 

Compiler and linker generated debug assistance

 

  • What is debug information?

  • Characteristics

  • Preparing your code for further debugging

 

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

 

Using the GDB debugger efficiently

 

  • Remote debugging

  • Automation

  • Using Eclipse front end

תגיות