Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Free Heap block modified at after it was freed, траблы с кучей 
:(
    Опции темы
Ashlander
Дата 7.9.2006, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 19.9.2004

Репутация: нет
Всего: нет



Здравствуйте All,

пишу проектик с использованием MFC, и при дебаге проекта получаю вылет с сообщением студии

Цитата

HEAP: Free Heap block cca9b8 modified at ccab4c after it was freed


1) места где происходит вылет разные, коменчу одно вылезет в другом... многопоточность не использую
2) _heapchk до самого вылета говорит, что все ок
3) проблем с массивами не наблюдаю... пока правда это единственная подходящая причина
4) самое смешное при запуске самой дебаг версии вылет не происходит при аналогичных "вредоносных"  действиях 

короче "полный привет..." (с)

может у кого идей будут посвежей ? заранее спасибо
PM   Вверх
_hunter
Дата 7.9.2006, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 5
Всего: 98



поставь bounds checker-- может что-то увидиш...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Ashlander
Дата 7.9.2006, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 19.9.2004

Репутация: нет
Всего: нет



Только обратил внимание на диалог который выскакивал при этом :
User breakpoint called from code at... Вот нагуглил... 

Цитата

В процессе отладки постоянно вываливается следующее сообщение: User breakpoint called from code at 0xADDRESS. При этом открывается окно дизассемблера. В ассемблере я, увы, не силен.
Суть в том, что все бреки давно убраны, относительно лишние файлы (*.ncb;*.opt) также убраны. Пробовал build, rebuild, clean + rebuild, перезапускал и студию, и систему - глухо.
Ладить невозможно... :/ Подскажите что-нить...


Цитата

Такое бывает при повреждении памяти. Скажем, есть поврежденный блок и вы вызываете функцию размещения или особождения памяти. Memory mamager тогда выкидывает INT 3, что заставляет отладчик остановиться. Какой стек вызова? Если дело кончается в ntdll, то скорее всего память попорчена.


1 в 1, вот правда остался немой вопрос "ну и чего..." .... забить и не париться.... ???
при нормальном запуске  экзешника как дебага, так и релиза все идеально...

PM   Вверх
_hunter
Дата 7.9.2006, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 5
Всего: 98



можно, конечно и забить (особенно если иенструментов для поиска бага нету). но если приложение планируется серьезное -- забить не прокатит)


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Ashlander
Дата 7.9.2006, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 19.9.2004

Репутация: нет
Всего: нет



Цитата

можно, конечно и забить (особенно если иенструментов для поиска бага нету). но если приложение планируется серьезное -- забить не прокатит)

вот так всегда... эх...  smile 

...кстати единственное, что осталось для себя выяснить, что означает фраза "память попорчена" ... это логический или физический дефект... я конечно понимаю, физический мне не светит... ну не может мне так сегодня повезти... но продебагить на другой машинке стоит  smile 
PM   Вверх
_hunter
Дата 7.9.2006, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 5
Всего: 98



логический -- где-то кто-то не туда что-то записал...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Ashlander
Дата 7.9.2006, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 19.9.2004

Репутация: нет
Всего: нет



Цитата
логический -- где-то кто-то не туда что-то записал...

мда... так оно и есть ,...
Цитата
 HEAP: Free Heap block cca9b8 modified at ccab4c after it was freed
 
только освобождаю я уже кильнутое... ну да ладно... найду грабли - покажу бланш  smile 
PM   Вверх
Ashlander
Дата 9.9.2006, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 19.9.2004

Репутация: нет
Всего: нет



вроде как нашел... 

не обнулялся указатель на динамически созданный обьект после его удаления... позже память забиралась под другой обьект, и модифицировалась "злодеем" указателем...

...а причина, как оказалось - не внес функцию в приватовскую секцию класса, после чего с успехом ее и использовал вместо заготовки...  smile 

минус: пришлось вручную перелопатить весь код...  smile 

спасибо всем
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0876 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.