Russian Qt Forum
Ноябрь 11, 2024, 19:12
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Установка, сборка, отладка, тестирование
>
Ваша программа падает у пользователей - ваши действия.
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Ваша программа падает у пользователей - ваши действия. (Прочитано 14252 раз)
Admin
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1988
Ваша программа падает у пользователей - ваши действия.
«
:
Июль 20, 2009, 15:04 »
Хотелось бы обсудить, что можно сделать в такой ситуации. Падает программа у некоторых пользователей, доступа к компам пользователей нет, я с ними даже не знаком. У меня не падает нигде, хотя стоит около 5 виндоусов для этой цели.
Вопрос - что можно включить в программу, что бы иметь некоторую диагностику. К примеру, я видел некоторые игры на DirectX когда падают, показывают окошко с номером строки где произошло падение. Как такое сделать в QT?
Записан
f-r-o-s-t
Гость
Re: Ваша программа падает у пользователей - ваши действия.
«
Ответ #1 :
Июль 20, 2009, 15:38 »
Реальный способ узнать строчку вставлять assertы. А с клиентами совсем нет связи? может можно как-то связаться? вопспроизводимо ли место падения, если нет то как часто это происходит? а кроме вас её кто нибудь тестирует? ведь сам обычно не ждешь очевидной ошибки? Вполне вероятно что ошибка не в особенностях разных windows а в чем то другом.
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Ваша программа падает у пользователей - ваши действия.
«
Ответ #2 :
Июль 20, 2009, 16:00 »
мне тож интересно как это сделать? например как в КДЕ делают при падении чего-либо - типа "отправить отчет разработчикам" и т.п. и показывается дамп и т.п.
Цитировать
Реальный способ узнать строчку вставлять assertы.
ассетры что позволят? т.е что будет происходить при крахе?
Записан
ArchLinux x86_64 / Win10 64 bit
Admin
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1988
Re: Ваша программа падает у пользователей - ваши действия.
«
Ответ #3 :
Июль 20, 2009, 16:00 »
Пользователи скачивают программу с сайта и говорят у меня падает через 5 минут или при нажатии на кнопку. А какой смысл от ASSERT? В основном сообщают о наличии ошибки и версии windows.
Записан
f-r-o-s-t
Гость
Re: Ваша программа падает у пользователей - ваши действия.
«
Ответ #4 :
Июль 20, 2009, 16:16 »
void Q_ASSERT ( bool test )
Prints a warning message containing the source code file name and line number if test is false.
При неверном условии обычно завершает программу и выводи номер строки,
можно написать самому и через __LINE__ узнавать номер.(при наличии #ifndef в больших количествах поможет врятле).
а вообще есть ли какие то мысли из за чего может быть такое поведение?
«
Последнее редактирование: Июль 20, 2009, 16:18 от f-r-o-s-t
»
Записан
alex12
Гость
Re: Ваша программа падает у пользователей - ваши действия.
«
Ответ #5 :
Июль 20, 2009, 16:26 »
Как я понимаю, единственный вариант - распространять debug сборку и как-то делать запуск через программу, показывающую отладочную информацию при крахе программы. Могу ошибаться, но с QtCreater-ом идет похожая на это утилитка.
Записан
f-r-o-s-t
Гость
Re: Ваша программа падает у пользователей - ваши действия.
«
Ответ #6 :
Июль 20, 2009, 16:28 »
Цитата: alex12 от Июль 20, 2009, 16:26
Как я понимаю, единственный вариант - распространять debug сборку и как-то делать запуск через программу, показывающую отладочную информацию при крахе программы. Могу ошибаться, но с QtCreater-ом идет похожая на это утилитка.
Надеюсь ты не про отладчик ...
Записан
crackedmind
Гость
Re: Ваша программа падает у пользователей - ваши действия.
«
Ответ #7 :
Июль 20, 2009, 17:58 »
Во время падения генерируем dump файл и дальше дело техники
Я для этих целей решил прикрутить google breakpad, кроссплатформенное решение генерации дампов. Правда документировано скудно, точнее никак
Только комментарии и спасают, и сорцы мозиловского crashreporter'a, в котором google breakpad также используется.
Если конкретно под винду и не охота возится с 3rdparty либами, то вот довольно интересная статейка.
http://dev.dtf.ru/articles/print.php?id=37058
Ну и также сайт: DebugInfo.com
«
Последнее редактирование: Июль 20, 2009, 18:04 от crackedmind
»
Записан
agentprog
Гость
Re: Ваша программа падает у пользователей - ваши действия.
«
Ответ #8 :
Июль 20, 2009, 20:44 »
А не проще все что находится в main() запихнуть в try ... catch и при перехвате писать в лог файл все что возможно?
Записан
f-r-o-s-t
Гость
Re: Ваша программа падает у пользователей - ваши действия.
«
Ответ #9 :
Июль 20, 2009, 20:49 »
Цитата: agentprog от Июль 20, 2009, 20:44
А не проще все что находится в main() запихнуть в try ... catch и при перехвате писать в лог файл все что возможно?
Интересно что писать будем ? =)
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Ваша программа падает у пользователей - ваши действия.
«
Ответ #10 :
Июль 20, 2009, 21:17 »
Цитата: f-r-o-s-t от Июль 20, 2009, 16:16
void Q_ASSERT ( bool test )
Prints a warning message containing the source code file name and line number if test is false.
При неверном условии обычно завершает программу и выводи номер строки,
можно написать самому и через __LINE__ узнавать номер.(при наличии #ifndef в больших количествах поможет врятле).
а вообще есть ли какие то мысли из за чего может быть такое поведение?
Все верно, но это справедливо ТОЛЬКО для дебаг сборки.
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Ваша программа падает у пользователей - ваши действия.
«
Ответ #11 :
Июль 20, 2009, 21:19 »
Админ, глянь вот эти темки:
http://www.prog.org.ru/topic_6574_0.html
http://www.prog.org.ru/topic_4638_0.html
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
agentprog
Гость
Re: Ваша программа падает у пользователей - ваши действия.
«
Ответ #12 :
Июль 20, 2009, 21:31 »
Цитата: f-r-o-s-t от Июль 20, 2009, 20:49
Цитата: agentprog от Июль 20, 2009, 20:44
А не проще все что находится в main() запихнуть в try ... catch и при перехвате писать в лог файл все что возможно?
Интересно что писать будем ? =)
ну как минимум
Цитата: kuzulis от Июль 20, 2009, 16:00
мне тож интересно как это сделать? например как в КДЕ делают при падении чего-либо - типа "отправить отчет разработчикам" и т.п. и показывается дамп и т.п.
Записан
f-r-o-s-t
Гость
Re: Ваша программа падает у пользователей - ваши действия.
«
Ответ #13 :
Июль 20, 2009, 23:11 »
Цитата: pastor от Июль 20, 2009, 21:17
Цитата: f-r-o-s-t от Июль 20, 2009, 16:16
void Q_ASSERT ( bool test )
Prints a warning message containing the source code file name and line number if test is false.
При неверном условии обычно завершает программу и выводи номер строки,
можно написать самому и через __LINE__ узнавать номер.(при наличии #ifndef в больших количествах поможет врятле).
а вообще есть ли какие то мысли из за чего может быть такое поведение?
Все верно, но это справедливо ТОЛЬКО для дебаг сборки.
Согласен, не учел =)
Цитата: agentprog от Июль 20, 2009, 21:31
Цитата: f-r-o-s-t от Июль 20, 2009, 20:49
Цитата: agentprog от Июль 20, 2009, 20:44
А не проще все что находится в main() запихнуть в try ... catch и при перехвате писать в лог файл все что возможно?
Интересно что писать будем ? =)
ну как минимум
Цитата: kuzulis от Июль 20, 2009, 16:00
мне тож интересно как это сделать? например как в КДЕ делают при падении чего-либо - типа "отправить отчет разработчикам" и т.п. и показывается дамп и т.п.
Ну произошло у нас исключение в main, что мы на основании этого сможем записать в этот отчет ?
Записан
break
Гипер активный житель
Offline
Сообщений: 846
Re: Ваша программа падает у пользователей - ваши действия.
«
Ответ #14 :
Июль 21, 2009, 00:39 »
Если с пользователем связи нет - то вы по идее даже не узнаете о крахе программы..
Все же надо или выбивать из пользователя все сведения о том как и что он делает. В том числе что у него за компьютер, какие еще программы запущены и т.д. Либо ехать к нему самому. Несколько раз мне приходилось часами на телефоне так общаться и причину ошибки все же удавалось установить. Кроме того иногда приходилось отсыласть особо проблемным пользователям версию программы с выводом комментарием в особо подозрительных местах. Однажды выяснилось что программа не устанавливала сетевое подключение т.к. была заблокирована в "Брандмауре Виндовз". Так что с вашей программой может вообще все ОК а неродивый антивирус пытаясь ее проверять на лету падает ее(такое тоже не раз встречал)...
В общем ищите с ними связь...
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...