Название: Проблема с функцией сериализации в релизе. Отправлено: igorskir от Май 17, 2013, 06:39 Добрый день.
Столкнулся с очень неожиданной проблемой, дело в том, что в Debug сборке, программа отрабатывает без ошибок, в то время как в Release сборке программа не запускается, либо запускается, но во время закрытия зависает. Ошибка возникает при вызове функции сериализации: Код: void SomeClass::fillStructures() Причем одно из полей структуры structName1 содержит в себе сериализованную этим же методом структуру structName0 , интересно то, что сериализация structName0 проходит без ошибок как в Debug, так и в Release сборке. Спасибо. Если будет нужно я предоставлю ранние участки кода, а так же типы полей структур. Название: Re: Проблема с функцией сериализации в релизе. Отправлено: Странник от Май 17, 2013, 08:12 а что это у вас память дважды выделяется, без утечек кодить скучно? = )
Название: Re: Проблема с функцией сериализации в релизе. Отправлено: Serr500 от Май 17, 2013, 08:13 Лучше будет, если предоставите минимальный компилируемый проект, воспроизводящий ошибку. А иногда сам процесс создания такого проекта позволяет найти ошибку. ;)
Название: Re: Проблема с функцией сериализации в релизе. Отправлено: igorskir от Май 17, 2013, 08:34 а что это у вас память дважды выделяется, без утечек кодить скучно? = ) Память освобождалось, я не привел этот участок кода. До вашего сообщения был уверен, что утечек нет, решил просмотреть заново и действительно - в одном месте было потерянно удаление указателя....Спасибо. Проблема решена. P.S. где вы обнаружили в том участке, который я привел, что память не освобождается дважды? Я вижу только одну утечку внутри метода fillStructures? Название: Re: Проблема с функцией сериализации в релизе. Отправлено: RedDog от Май 17, 2013, 09:07 P.S. где вы обнаружили в том участке, который я привел, что память не освобождается дважды? Я вижу только одну утечку внутри метода fillStructures? PS: хоть 10 раз освобождай память, но указатель то потерян уже, и утечка будет. Первое new лишнее абсолютно. PSPS: в данном случае лучше бы смарт поинтерами попользоваться Название: Re: Проблема с функцией сериализации в релизе. Отправлено: Igors от Май 17, 2013, 09:41 Ну набросились на (у)течку :) ОписАлся человек или просто текст был для примера. А к делу это отношения не имеет - ошибка где-то в до месте.
Название: Re: Проблема с функцией сериализации в релизе. Отправлено: igorskir от Май 17, 2013, 09:52 Нет, на самом деле все замечания были справедливые.
Не верная реализация: Код: QByteArray *byteArray = new QByteArray(); Код: QByteArray *byteArray = serializationStrusct(structName1); Спасибо. Название: Re: Проблема с функцией сериализации в релизе. Отправлено: Странник от Май 17, 2013, 11:30 искать ошибку в отсутствующем коде я не мастер, но я бы взглянул на сами структуры и операторы сериализации-десериализации для них в QDataStream.
|