Advanced C++ Debugging Techniques

1 vote, average: 5.00 out of 51 vote, average: 5.00 out of 51 vote, average: 5.00 out of 51 vote, average: 5.00 out of 51 vote, average: 5.00 out of 5
Please Log in or register to rate

Advanced C++ Debugging Techniques


This course broadens the skills of a C++ language programmer by providing the programmer a deeper understanding of the application run time environment, and introducing different debugging techniques and tools used to analyze and resolve complex software issues.


Target Audience:
C++ Programmers who wishes to improve their debugging techniques for better resolving complex software issues. Software Team Leaders who wishes to improve their understanding of the debugging process, allowing them better decision making and problem resolving planning.

Experience in C++ Programming

Course Objectives

Upon completion of the course, participants will be able to:

• Build a strategy to resolve a complex problem
• Better identify, define and locate the problem
• Decide on the proper methods and software tools to use
• Operate and use various debugging tools

Course Topics

Module 1 – Application Run Time Environment

The C++ compiler
Debug vs. Release Builds
Compiler optimizations
Thread safety
Warnings, Errors

Module 2 – Problem Solving Strategy

Describing the Symptoms:
•  Application’s paths
•  Is What You See Is What You Get?
•  Crash, Corruption, Deadlocks
•  Delays, Errors, Failures, Exceptions, Performance

Identifying the Cause:
•  Requirement, Design
•  Error,  Hardware Failure
•  Resources, Performance, Configuration
•  Compatibility, Building
•  Bug, Race Conditions, Memory Leaks

Module 3 – Analyzes techniques

Analytic & Empiric debugging
External & Intrusive debugging
Dr. Watson,  Watch Dog, Tracers, Logging
Beacon, Traps, Code Inspection
Compiler, strip, addr2line
Injectors, Sniffers, Simulators

Module 4 – Debugging tools – Theory

The Debugger:
•  Breakpoints
•  Call Stack
•  Threads
•  Watch
•  Inspection
•  Backtrace
•  Memory Disassembly
•  Loading Symbols
•  Attaching to Process
•  Local vs. Remote debugging
•  Core dumps

The Profiler:
•  Call Graph
•  Memory Usage
•  Call Frequency
•  Call Duration

Module 5 –Debugging advanced topics

•  Basic operations
•  Remote Debugging scenario
•  Core dump analyzes

•  Call Graph
•  Memory Usage

© Copyright - Skilit - Site by Dweb