Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Ошибки работы с памятью - как с ними бороться

9.0K
03 августа 2007 года
RedNN
33 / / 15.08.2006
Есть прога, собраная в VS2003. В ней активно юзаются вектора и просто выделяется память.
Проблема: где то в проге ошибка, похоже что ошибка работы с памятью, т.к. собраный ехе-шник вылетает, но вылетает не всегда и не у всех. В дебаге тоже не вылетает, по-этому не знаю, как отловить.
Как бороться с такими ошибками?
255
03 августа 2007 года
Dart Bobr
1.4K / / 09.04.2004
подключи логи.
2.0K
10 августа 2007 года
WidowMaker
212 / / 05.04.2005
1. Использую свой менеджер выделения памяти поверх стандартного и веди логи.
2. Структурируй программу, обычно такие проблемы возникают на плохо разработанной структуре.
В больших и серьозных проектах у больших дядек эта проблема тем неменее так же актуальна, поэтому -> поищи утилиты отслеживающие утечки памяти (memleak*....)
255
10 августа 2007 года
Dart Bobr
1.4K / / 09.04.2004
Цитата: WidowMaker
В больших и серьозных проектах у больших дядек эта проблема тем неменее так же актуальна, поэтому -> поищи утилиты отслеживающие утечки памяти (memleak*....)


В студии для этого есть стандартные средства.

2.9K
13 августа 2007 года
Ation
96 / / 27.07.2004
ну можно попробовать поставить свой обработчик ошибок выделения через new - set_new_handler.
Можно попробовать переопределить переменные-вектора, указав свой аллокатор (как его написать - смотри MSDN).
Вылетать может при неудачной попытке выделить память, но под виндой это надо оччень постараться. Если хочеться посмотреть, что конкретно запрашивает прога, можно попробовать локальный перехват HeapAlloc.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог