Detecting Memory Leaks in C/C++ Applications using Visual Studio

Apply techniques to detect & isolate memory related errors in Visual Studio & create your own leak detector library.

What you'll learn

Understand different kinds of problems associated with memory management

Effectively detect & isolate memory problems

Gain confidence in C/C++ memory management

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++

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 excellent features that Visual Studio provides. 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 Visual Studio heap library functions and understand how to use them in your code.


By the end of this course, you'll have a deep understanding of dynamic memory management. You'll be able to use CRT heap functions effectively to detect & isolate memory problems. You'll also implement the Visual Studio functions so that they can be used with any C++ compiler.


Note:This course requires Visual Studio 2017 or a higher version.

Course curriculum

Process Memory Layout

Introduction to Pointers

Using Visual Studio

Debugging Basics

Byte Ordering

C Allocation Functions

Examples

Reallocation

C++ Allocation Operators

How new works - I

How new works - II

Exceptions

new handler

Non-throwing Source Files

Non-throwing new - I

Non-throwing new - II

Non-throwing new - III

Placement new - I

Placement new II

Placement new III

Pplacement new IV

Placement new V

Operator new & delete functions

Memory Management Issues

Uninitialized Pointers - I

Uninitialized Pointers - II

Buffer Overflow - Stack

Buffer Overflow - Heap

Dangling Pointers - I

Dangling Pointers - II

Memory Leaks - I

Memory Leaks II

Source Files

String Class - I

String Class - II

String Class - III

String Class - IV

Detecting Heap Corruption in String

Heap Checker Class - I

Heap Checker Class - II

Heap Checker Class - III

Heap Checker Class - IV

Heap Checker Class - V

Source Files

_CrtDumpMemoryLeaks() function

_CrtDumpMemoryLeaks() Example

Leak Detection Flags

Detailed Leak Dump

Exercise

Memory Snapshots - I

Memory Snapshots - II

Memory Checkpoint Class

Issues with checkpoints

Snapshots in Visual Studio - I

Snapshots in Visual Studio - I

Report Modes & Types - I

Report Modes & Types - II

Redirecting to File

Leak Detection Internals

Memory Block Header

Implementing ptfree()

Implementing ptDumpLeaks()

Adding C++ Supporting - I

Adding C++ Supporting - II

Compiling on Linux

Source Files

Heap Corruption Internals

PtCheckMemory() Implementation - I

PtCheckMemory() Implementation - II

Memory Alignment & Structure Padding

Block Header Alignment

Image23

Instructor


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++.

Related courses

You may also find the following courses useful


New course notifications

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

Yes please, save my details so you can send me educational content that is relevant and helpful.