Поймать удаление стека объекта? - PullRequest
2 голосов
/ 19 мая 2011

Существуют ли инструменты для отслеживания удаления стекового объекта, какова вероятность того, что отладочная сборка gcc и Visual Studio немедленно прервет это событие?

Я имею дело с большими старыми проектами, так что это не вопросо том, как писать код, но как выявлять и исправлять проблемы.

Ответы [ 2 ]

2 голосов
/ 19 мая 2011

Большинство реализаций кучи не допускают неверных указателей (т. Е. Когда вы delete адрес, который не был возвращен вам кучей). Почти наверняка стандартная куча окон и куча CRT (реализованная MSVC) в этом случае вызывают точку останова отладки.

Вы также можете заменить реализацию операторов new / delete и выполнить проверку самостоятельно (в вашем случае вы хотите только проверить, принадлежит ли адрес стековой памяти, что легко).

2 голосов
/ 19 мая 2011

Маловероятно, что такое могло бы произойти, если вы заранее спроектируете права собственности и при необходимости будете использовать умные указатели для обеспечения их соблюдения. Я сомневаюсь, что они сделают что-нибудь, кроме как бросить общее плохое освобождение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...