
For approximate training content, please see the first 45 slides (there are 297 slides in total for the previous version) and TOC from the corresponding previous edition of the Memory Thinking book.
Registration: TBD
Solid C and C++ knowledge is a must to fully understand Linux diagnostic artifacts, such as core dumps, and perform diagnostic, forensic, and root cause analysis beyond listing backtraces. Accelerated C and C++ for Linux Software Diagnostics training reviews memory-related topics from the perspective of software structure and behavior analysis, and teaches C and C++ languages in parallel while demonstrating relevant code internals using GDB:
- a tour of relevant language(s) constructs - classic/legacy C++, C++11, and later standards including C++23
- Linux specifics
- pointers and references
- memory layout of structures and objects
- local, static, and dynamic memory
- object lifecycle
- templates and standard library
- functions, function objects, and lambdas
- compilation and linkage
- multithreading and synchronization
- bad and insecure code
- … and much more
The new version will expand on many topics, including Linux kernel space.
System programming on Linux using C and C++ is unthinkable without the Linux API. To avoid repeating some topics and save time, the training includes the Accelerated Linux API for Software Diagnostics book as a follow-up or additional reference. A necessary x64 and ARM64 review for some topics is also included.
Before the training, you get the following:
- The current second edition of the Memory Thinking for C & C++ Linux Diagnostics PDF book
- Accelerated Linux API for Software Diagnostics PDF book
- Access to Software Diagnostics Library
- Previous recording of the training
After the training, you also get the following:
- The new third edition of the Memory Thinking PDF book with additional C and C++ examples
- Personalized Certificate of Attendance with unique CID
- The new recording
If you are interested in Windows, there is another Windows C and C++ training available.