Прежде всего, было по крайней мере 4-5 тем с аналогичной темой на SO. Я читал каждый из них, и я не чувствую, что они действительно помогают мне в этой конкретной проблеме. Если кто-то найдет дублирующий вопрос, я приношу свои извинения. Я сделал свою долю поиска, прежде чем я разместил это, так как это кажется очень распространенным вопросом.
Я использую Visual Studio.NET 2003 в Windows 7.
У меня есть свои собственные перегрузки new/delete, которые указывают на мои собственные пользовательские вызовы malloc() и free() для диагностики. Мои новые/удаленные перегрузки находятся в файле заголовка, который я включил в несколько файлов.
Проблема в том, что база кода - это в значительной степени спагетти, и нет простого способа убедиться, что эти перегрузки используются всеми. В него входят сторонние библиотеки, которые имеют черный ящик. Мы также используем STL всюду.
В моих тестах я обнаружил, что STL по-прежнему смешивает вызовы со своим собственным новым/удаленным и стандартными вызовами new/delete MSVC.
Кажется нереальным включить мой заголовочный файл в тысячи других файлов, которые просто затянутся слишком долго. Может ли кто-нибудь предложить некоторые советы о том, как правильно и эффективно перегружать новые/удалить глобально, чтобы все использовало мой пользовательский менеджер памяти?