Introduction

Look at the details of the course, as well as its general prerequisites and intended audience.

Overview

The GNU debugger (GDB) is a popular debugger for Unix-like systems. It’s mainly used in C or C++ programs, though it supports other languages as well. This tool helps us trace and track modifications in different registers and memory locations during the execution of a program.

With the GDB, we can execute a program step by step and examine what is happening in the memory with each instruction or after a set of instructions. We can also monitor when a core dump happens, and when an error occurs in the program, we can tell which line caused that error.

In this course, we’ll discuss the practical foundation of Linux debugging and how to disassemble simple assembly language programs. We’ll also discuss how to reconstruct C and C++ programs from GDB disassembly output.

Prerequisites

This course will be the most beneficial to you if you already have a basic knowledge of C, C++, and assembly languages.

Intended Audience

This course will be most useful for:

  • Software technical support and escalation engineers
  • Software engineers with a JVM background
  • Software testers
  • Engineers coming from non-Linux environments like Windows or Mac OS X
  • Linux C and C++ software engineers without an assembly language background
  • Security researchers without an assembly language background
  • Beginners learning Linux software reverse engineering techniques