Как я могу отслеживать выделения памяти в С++, особенно те, которые выполняются с помощью new
/delete
. Для объекта я могу легко переопределить operator new
, но я не уверен, как глобально переопределить все распределения, чтобы они прошли через мой пользовательский new
/delete
. Это не должно быть большой проблемой, но я не уверен, как это должно быть сделано (#define new MY_NEW
?).
Как только это сработает, я бы предположил, что достаточно иметь карту где-то из указателя/местоположения выделения, поэтому я могу отслеживать все распределения, которые в настоящее время являются "активными" и - в конце приложения - проверьте выделение, которые не были освобождены.
Ну, это похоже на то, что, безусловно, было сделано несколько раз, по крайней мере, так что любая хорошая библиотека там (желательно переносная)?