Russian Qt Forum
Ноябрь 26, 2024, 15:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: [РЕШЕНО (разные dll для разных сборок)] почему relise работает с ошибками  (Прочитано 9371 раз)
unkeep
Гость
« : Август 07, 2013, 11:43 »

если запускать в режиме отладки то всё работает отлично (ни ошибок, не предупреждений, память освобождается где надо ), в режиме релиза запускается, но выкидывает с ошибками:

Second Chance Assertion Failed: File f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c, Line 1317

Error - RtlWerpReportException failed with status code :-1073741823. Will try to launch the process directly


код кидать не буду, хотелось бы просто узнать особенности сборок в разных режимах. Знаю что в релизе убирается все инструкции для отладки и тп. но на работу приложения это не должно никак влиять, ведь так?
и какие есть методы поиска ошибок в режиме релиза(дебагер же не работает)?
« Последнее редактирование: Август 13, 2013, 10:13 от unkeep » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Август 07, 2013, 11:52 »

скорее всего где-то используешь битый указатель
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
unkeep
Гость
« Ответ #2 : Август 07, 2013, 11:55 »

скорее всего где-то используешь битый указатель
почему тогда в режиме отладки ничего не вылетает, и как узнать где имеено этот указатель используется без дебагера?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Август 07, 2013, 12:05 »

дебаг он такой, иногда в нем не ломаются указатели

попробуй valgrind. или просто выполни поиск new/malloc по проекту и убедись, что указатели удаляются.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
unkeep
Гость
« Ответ #4 : Август 07, 2013, 12:11 »

смог вызвать туже ошибку при обращении к модели. оч странно..
Код
C++ (Qt)
   CreateModels();
   qDebug()<<GetDocFullName(1);
   qDebug()<<GetDocFullName(2);


Код
C++ (Qt)
QString DocSelectorDialog::GetDocFullName(int row)
{
   QModelIndex index = _typeDocModel->index(row,2); // QSqlQueryModel* _typeDocModel;
   return _typeDocModel->data(index).toString();
}

вывод приложения:
"2 ПРЕДВАРИТЕЛЬНОЕ РАСПОРЯЖЕНИЕ"
Error - RtlWerpReportException failed with status code :-1073741823. Will try to launch the process directly


а, второй документ не вывело...
Записан
mutineer
Гость
« Ответ #5 : Август 07, 2013, 12:13 »

Видимо его в модели нет
Записан
unkeep
Гость
« Ответ #6 : Август 07, 2013, 12:18 »

Видимо его в модели нет
есть. поменял местами их вывод в дебаг -  тоже самое только другой документ вывело

вывод приложения:
"3 ПРЕДВАРИТЕЛЬНОЕ РАСПОРЯЖЕНИЕ"
Error - RtlWerpReportException failed with status code :-1073741823. Will try to launch the process directly
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #7 : Август 07, 2013, 12:50 »

unkeep, очень похоже что у тебя приложение работает с одной dll, и в релиз версии и в дебаг. Соответственно в дебаг все нормально, релиз вылетает.
Записан
unkeep
Гость
« Ответ #8 : Август 07, 2013, 13:35 »

unkeep, очень похоже что у тебя приложение работает с одной dll, и в релиз версии и в дебаг. Соответственно в дебаг все нормально, релиз вылетает.

полностью удаляю папку со сборкой при смени режима и собираю заново
Записан
unkeep
Гость
« Ответ #9 : Август 08, 2013, 18:07 »

очень долго ломал бошку пока не заметил что одна из dll была собрана в дебаг режиме. пересобрал её в релизе - заработало. долго радовался, пока не нарвался на такие же ошибки только теперь после сборки приложения для дебага. Что получается для каждого режима теперь надо свои dll пересобирать? или я что-то не так делаю?

Записан
Bepec
Гость
« Ответ #10 : Август 08, 2013, 18:13 »

Для каждой конфигурации нужны свои dll. Дебаг в дебаге, релиз в релизе.
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #11 : Август 08, 2013, 18:34 »

очень долго ломал бошку пока не заметил что одна из dll была собрана в дебаг режиме.
А я говорил ...
Записан
unkeep
Гость
« Ответ #12 : Август 12, 2013, 09:47 »

в связи с этим хотелось бы поинтересоваться, каким образом прописать условие, при котором в зав-ти от режима сборки подгружалась соответствующая dll?
Записан
Bepec
Гость
« Ответ #13 : Август 12, 2013, 10:46 »

Какой хороший вопрос для телепатов Веселый Указывать IDE не надо?

В VS спокойно настраиваются подключаемые в различных конфигурациях dll. Project property->linker -> и вводим необходимые.
Записан
unkeep
Гость
« Ответ #14 : Август 12, 2013, 11:21 »

Какой хороший вопрос для телепатов Веселый Указывать IDE не надо?

Qt creator 2.6 + sdk 4.8.1
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.175 секунд. Запросов: 23.