
This course can be delivered as an Embedded/Native combo with target boards, or Native Only where target boards are not required.
Course Objectives
The aim of this course is to provide a basic overview of debugging/tracing/profiling facillitites available with (embedded) GNU/Linux. Hands-on exercises provide you with the necessary practical experience to go ahead and choose the right tool for your debugging needs.
Description
This 2-day or 3-day training class uses hands-on exercises combined with instruction to illustrate some basic concepts of debugging/tracing/profiling Embedded GNU/Linux. Hands on sessions are performed with the freely available ELDK, which is derived from Yocto, on a Beagle-XM Rev.C and/or native on Ubuntu. The whole workshop is designed to bring you quickly up to speed. The concepts and commands necessary to make effective use of Embedded GNU/Linux's debugging/tracing/profiling facilties are described through a combination of theory and on-the-job training. Don’t reinvent the wheel, but learn from an experienced trainer and take home a working knowledge of Embedded GNU/Linux debugging and the ability to use it effectively in your own embedded development project.
Prerequisites
- Basic knowledge of how to use Linux (Ubuntu)
- Familiarity with embedded C concepts and programming
- Ability to develop software using C syntax
- Basic knowledge of embedded processor development boards
- ... or no fear to learn the aboveand programming
Who should attend?
Project managers, software, hardware, development and systems engineers, technicians and those interested in technology who want to try get a broad overview about numerous debugging/tracing/profiling facilites available with Embedded GNU/Linux.
Course Outline
SIMPLE debugging
- errno, shell debug, lsof, netstat, procfs, sysfs, debugfs
- syslog, ltrace, strace
- ldd, strings, nm, objdump, addr2line
- mem_munch
- split, sparse
- magic-sysrq-key
- sysctl
Gdb and friends
- gdb, gdbserver, threads, core_dump, null_ptr, crash
TOP and friends
- latencytop, powertop, powerdebug, iotop, atop
Profiling/tracing
- time, gcov, gropf, oprofile
- systemtap, perf, ftrace, LTTng
- valgrind, cachegrind, helgrind
- mutrace