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

Ваш аккаунт

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

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

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

Спасайте. Дебаг работает а релиз нет!

1.5K
22 апреля 2003 года
AndySPb
58 / / 11.04.2003
Как так может быть, дебаг работает, а в релизе вылетает Exception:
Project raised exception class EAccessViolation with message "Access violaton at address 0040295F. Write of adress FFADE9D5". Process stopped.
И после этого прога вообще вылетает. Я уже и не знаю что и думать.
А завтра-послезавтра она должна кровь из носа заработать.
Кто нибудь знает что делать? :)
469
22 апреля 2003 года
Sli
71 / / 20.01.2000
Попробуй отладку с CodeGuard'ом. Скорее всего работа с памятью неправильная. выделил память попользовал и высвободил, а потом пытаешься еще раз освободить то чего нет ... (посмотри как объекты создаються и удаляються)
если не найдешь попробуй оптимизацию отключить (незнаю как щас, но раньше в борландовских компиллерах оптимизация странно подглючивала, из-за этого релизы не всегда работали)
1.5K
23 апреля 2003 года
AndySPb
58 / / 11.04.2003
CodeGuard говорит
Attempt to access 4 byte(s) at 0x0099FA2C+44, that is at offset 0+44 in local block 0x0099FA2C(=[ebp-0xBC] @STENDP.EXE:0x01:003126) which is only 44 bytes long.
А что это значет я не очень понял.
А отмена оптимизации не помогает
469
23 апреля 2003 года
Sli
71 / / 20.01.2000
Цитата:
Originally posted by AndySPb
CodeGuard говорит
Attempt to access 4 byte(s) at 0x0099FA2C+44, that is at offset 0+44 in local block 0x0099FA2C(=[ebp-0xBC] @STENDP.EXE:0x01:003126) which is only 44 bytes long.
А что это значет я не очень понял.
А отмена оптимизации не помогает



это значит что ты вылетаешь за пределы выделенного блока памяти. т.е. ты пытаешься достать 4 байта начиная с 44-го, когда памяти всего 44 байта.
Посмотри где выделяеться этот блок памяти, и где вылетает. может что индексом по массиву (или с его типом его содержимого) перепутал или просто мало памяти выделил.
Нужно смотреть что Code Guard в стеке вызовов пишет для выделения и особое внимание обрати на то что происходит при падении.

PS: а насчет оптимизации и не поможет, у тебя изначально с памятью не правильно.... просто в дебаге после этой памяти был мусор и туда залазить было не опасно, а релиз там все жестко :-)

1.5K
23 апреля 2003 года
AndySPb
58 / / 11.04.2003
А как посмотреть в каком месте программы это все происходит, если в дебаге все работает, а в релизе никакие точки останова уже не помогают???
И как узнать где выделяется этот блок памяти.
1.5K
23 апреля 2003 года
AndySPb
58 / / 11.04.2003
Причем эта вот хрень начинает вылетать только если сказать ему чтоб не использовал дебаг библиотеки
469
23 апреля 2003 года
Sli
71 / / 20.01.2000
Цитата:
Originally posted by AndySPb
Причем эта вот хрень начинает вылетать только если сказать ему чтоб не использовал дебаг библиотеки



Дык Code Guard должен и в дебаге ругаться !
а так делай не полный дебаг, а только инфу об исходнике. а Guarde сработает смотри стек вызовов.
( Ctrl+Alt+S )

1.5K
25 апреля 2003 года
AndySPb
58 / / 11.04.2003
Цитата:
Originally posted by Sli


Дык Code Guard должен и в дебаге ругаться !
а так делай не полный дебаг, а только инфу об исходнике. а Guarde сработает смотри стек вызовов.
( Ctrl+Alt+S )



Все, спасибо разобрался. Действительно с массивами там не так было.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог