Я хотів би запропонувати щось, що я використовував у минулому: рудиментарну перевірку витоку, яка є джерелом та досить автоматичною. Я віддаю це з трьох причин:
Ви можете вважати його корисним.
Хоча це трохи важко, але я не дозволяю цьому переймати мене.
Незважаючи на те, що він прив’язаний до деяких гаків win32, це слід легко полегшити.
Є речі, з якими потрібно бути обережними під час його використання: не робіть нічого, на що слід спиратися new
в базовому коді, остерігайтеся попереджень про випадки, які можуть пропустити у верхній частині leakcheck.cpp, розумійте, що якщо ви звернетеся на (і виправити будь-які проблеми з) кодом, який виконує скидання зображень, ви можете створити величезний файл.
Конструкція призначена для того, щоб ви могли вмикати та вимикати шашку, не перекомпонуючи все, що включає її заголовок. Включіть leakcheck.h там, де ви хочете відстежити перевірку та відновити один раз. Після цього, компілюйте leakcheck.cpp з або без LEAKCHECK # define'd, а потім повторно посилання, щоб увімкнути та вимкнути його. Якщо включити unleakcheck.h, він вимкне локально у файлі. Надано два макроси: CLEARALLOCINFO () дозволить уникнути неправильного повідомлення про той самий файл і рядок, коли ви переходите до виділення коду, який не включав leakcheck.h. ALLOCFENCE () просто запускає рядок у створений звіт, не виконуючи жодного розподілу.
Знову ж таки, будь ласка, зрозумійте, що я не використовував це деякий час, і вам, можливо, доведеться трохи попрацювати з цим. Я відкидаю це, щоб проілюструвати ідею. Якщо виявиться достатній інтерес, я б хотів розробити приклад, оновивши код у процесі та замінивши вміст наступної URL-адреси чимось приємнішим, що включає в себе пристойний список синтаксису.
Ви можете знайти його тут: http://www.cse.ucsd.edu/~tkammeye/leakcheck.html