У меня есть решение Visual Studio 2010, которое содержит проекты C # (управляемый), C ++ / CLI (неуправляемый) и чистый C ++ (собственный). Я хотел бы выполнить обнаружение утечки памяти во всех трех проектах или, по крайней мере, в собственном коде:
Я пробовал использовать Intel Inspector XE 2011, но он просто слишком медленный ... выполнение такой простой вещи, как простая инициализация моей системы, занимает так много времени, что я еще даже не видел ее завершенной. Когда я запускаю свою систему без IXE 2011, на инициализацию моей системы у меня уходит не более 10-15 секунд, тогда как с IXE мы позволяем ей работать часами, и она не проходит инициализацию. Я попытался исключить определенные библиотеки из профилирования, но это не дало никакого эффекта.
Я пробовал использовать Visual Leak Detector, но после завершения прогона он сказал, что не может найти никаких утечек памяти.Я с подозрением относился к этому результату, поэтому я намеренно поместил фрагмент кода в часто выполняемую функцию, чтобы убедиться, что есть утечка памяти:
int* memoryLeak = new int;
Я снова работал с VLD, но он выдал то же сообщение. Я подумываю переопределить операторы new
/ delete
или даже просто malloc
/ free
, но я хотел убедиться, что я я исчерпал все другие варианты, прежде чем углубиться в это.
Что я могу сделать, чтобы профилировать использование памяти моей собственной библиотекой C ++ с Visual Studio 2010? Существуют ли другие инструменты или методы, которые могут работать (даже если они не интегрируются с VS2010)?