memory leak check by sanitizer

 

#include <iostream>
using namespace std;

class X{
public:
X();
~X();
};


X::X(){
cout << "X()" << endl;
}
X::~X(){
cout << "~X()" << endl;
}

int main(){
X* pX = new X();

//pX->~X();
delete pX;
return 0;
}

 

kzono@rachael:$ g++ -Wall callDestructor.cpp -fsanitize=address -fsanitize=leak
kzono@rachael:$ ./a.out
X()
~X()

=================================================================
==18291==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 1 byte(s) in 1 object(s) allocated from:
#0 0x7f37b9b2a532 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x99532)
#1 0x400cd1 in main (/home/kzono/Projects/cxx_samples/sanitizer_samples/memLeak/a.out+0x400cd1)
#2 0x7f37b914f82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)

SUMMARY: AddressSanitizer: 1 byte(s) leaked in 1 allocation(s).
kzono@rachael:$