Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: kvrus от Август 29, 2012, 19:25



Название: Как отловить ошибку которая происходит только при закрытии приложения
Отправлено: kvrus от Август 29, 2012, 19:25
Дело такое, есть большое приложение с большим количеством классов, запускается и работает нормально нормально, но при закрытии приложения выдает ошибку "завершился с кодом -1073741819". На форумах говорят, что это попытка обратиться к объекту, которого нет (скорее всего по указателю). Так как возникает она только при закрытии приложения, то думается мне что кто то пытается удалить объект, который уже был удален ранее. То есть, надо выставить порядок удаления объектов в деструкторе. Что я собственно и пытался сделать, но без результатов. Никак не могу отловить то что происходит и исходник кинуть не могу, так как он большой и я не знаю где именно ошибка. Как вообще отлавливают такие ошибки?


Название: Re: Как отловить ошибку которая происходит только при закрытии приложения
Отправлено: kambala от Август 29, 2012, 19:29
возможно ты какой-то виджет создаёшь в стеке и назначаешь ему родителя, который живёт до закрытия программы


Название: Re: Как отловить ошибку которая происходит только при закрытии приложения
Отправлено: andrew.k от Август 29, 2012, 19:29
под отладчиком то пробовал запускать?


Название: Re: Как отловить ошибку которая происходит только при закрытии приложения
Отправлено: kvrus от Август 29, 2012, 19:31
А что происходит когда помещаю виджет в стек? Стек будет пытаться его удалить?


Название: Re: Как отловить ошибку которая происходит только при закрытии приложения
Отправлено: kambala от Август 29, 2012, 19:37
объект автоматически уничтожится по выходе из области видимости


Название: Re: Как отловить ошибку которая происходит только при закрытии приложения
Отправлено: Alex Custov от Август 29, 2012, 19:45
Смотри в PurifyPlus, для него есть пробная версия, она не показывает строку где происходит ошибка, но показывает саму ошибку, что натолкнёт на мысли.


Название: Re: Как отловить ошибку которая происходит только при закрытии приложения
Отправлено: Igors от Август 29, 2012, 19:55
Как вообще отлавливают такие ошибки?
Отладчиком и др инструментами, менять что-то вслепую можно долго но безуспешно. В консоль смотреть не помешает. Часто помогает symbolic breakpoint.


Название: Re: Как отловить ошибку которая происходит только при закрытии приложения
Отправлено: andrew.k от Август 29, 2012, 19:55
Смотри в PurifyPlus, для него есть пробная версия, она не показывает строку где происходит ошибка, но показывает саму ошибку, что натолкнёт на мысли.
да скорее всего там все просто. и камбола прав с вероятностью в 79%.
думаю main.cpp будет достаточно для отлова ошибки)


Название: Re: Как отловить ошибку которая происходит т&
Отправлено: panAlexey от Сентябрь 09, 2012, 17:26
Как вообще отлавливают такие ошибки?
Вырубают участок за участком и смотрят, где ошибка.
ПС. Лучше тестировать классы раздельно и хранить сторию версий в том-же свн-е.
Сравниваешь изменения от близких версии где такого бага нет и где есть и медитируешь над каждым изменением.
Где-то так.