What you'll learn

  • Understand different kinds of problems associated with memory management

  • Effectively detect & isolate memory issues

  • Gain confidence in C/C++ memory management

  • Understand and use the facilities provided by Xcode for detecting memory issues

  • Use the standard memory debugging tools provided in macOS

Course Features

  • Full lifetime access
  • Access on mobile
  • Certificate of Completion

    What you should know before enrolling in this course

    • Fair knowledge of C & C++ is essential for this course
    • Not recommended for complete beginners to C++

Course Description

C++ is a large and complex language, but it gives programmers complete freedom when it comes to management of dynamic memory. This allows the programmers to allocate memory and manipulate it at runtime. That is why C++ is still a favorite language for high performance applications in various domains such as gaming, telecom, finance, aerospace, etc.

However, it requires programmers to take great care while using dynamic memory, such as releasing acquired memory, taking care not to overstep memory boundary, etc. Otherwise, it could lead to problems such as dangling pointers, memory corruption, memory leaks, etc. 

This course will help you overcome all these problem by leveraging the tools provided on macOS platform. It has a rich set of functions provided by the C/C++ runtime heap library. These functions can help detect memory leaks, overflows, etc. You'll learn how to use these functions effectively and make your programs bug-free.

In this course, you'll start with the basics of heap memory management and understand C & C++ allocation functions/operators in depth. You'll also learn how to effectively use them to avoid memory problems. Afterwards, you'll learn about the Xcode Malloc Debugging library functions and understand how to use them in your code. You'll also use the guarded memory allocator to effectively detect heap corruptions. You'll also gain knowledge of Xcode instruments, leaks command & more that can help you detect leaks.

By the end of this course, you'll have a deep understanding of dynamic memory management. You'll be able to use standard tools effectively to detect & isolate memory problems. 

Note: This course is ONLY for macOS platform

Course curriculum

  • 2

    Xcode Overview

    • Xcode Installation & Basic Usage

    • Debugging in Xcode

    • Memory Management Issues

  • 3

    Detecting Buffer Overflows & Underflows

  • 4

    Detecting Leaks

    • leaks Command Line Tool

    • Using leaks Command - I

    • Using leaks Command - II

    • Root Leak

    • Root Cycle

    • leaks Command Line Options

    • 15. Memory Graph Root Leaks

    • 16. Memory Graph Root Cycles & Chained Pointers

    • 17. Memory Graph With leaks Command

  • 5

    Xcode Instruments

    • 01. Debug Navigator Introduction

    • 02. Debug Navigator Usage

    • Memory Window In Debug Navigator

    • Introduction To Instruments

    • 05. Allocations Instrument - I

    • 05. Allocations Instrument - II

    • 05. Allocations Instrument - III

    • 05. Allocations Instrument - IV

    • 05. Allocations Instrument - V

    • 10. Leaks Instrument - I

    • 10. Leaks Instrument - II

    • 10. Leaks Instrument - III


Owner at Poash Technologies & Poash Learning

Umar Lone

Civil engineer who found his calling in software development. Never worked as a Civil engineer, jumped at the first chance and started teaching C++, Visual C++ & COM 18 years ago. Currently, trains software professionals in various IT companies in India in different technologies, such as C++, Advanced C++, STL, Design Patterns, Android, Unity, Linux, etc. Very passionate about teaching and has trained more than 35,000 software professionals in a teaching career spanning more than 2 decades. An avid gamer, currently trying his hand with game development in Unity & Unreal. Has a few Android applications to his credit, including one on Design Patterns. Only thing he likes more than C++ is Modern C++.

New course notifications

Add your email to the mailing list to get the latest updates.