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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Отловить вылет программы  (Прочитано 4576 раз)
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« : Февраль 23, 2013, 18:35 »

Для начала всех с праздником Улыбающийся Подтолкните пожалуйста меня на мысль. Есть софт кроссплатформеный, хочется добавить в него такую фичу, если вдруг по каким то причинам софт упал, сформировать некий дамп типа

1. Класс\метод где упал софт.
2. Какова причина ну например деление на 0 или ошибка сегментации.

может что то еще. Естественно хочется ловить это все глобально, есть ли варианты для решения такой задачи, с ходу что то в голову ничего не приходит ?
Записан
Bepec
Гость
« Ответ #1 : Февраль 23, 2013, 19:04 »

Говорю о Windows!

Собственно для такой ситуации имеется вроде решение аля запись дампа памяти и отправки разработчику. Этим же кроссплатформенно вроде занимается библиотека CrashReport, но у меня не получилось её приструнить - нехватило времени.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Февраль 24, 2013, 08:51 »

В Mac OSX это делается автоматически - и очень хорошо. Симитируйте краш и посмотрите CrashReport - отпадет желание "лезть с грыжей на танк"  Улыбающийся

Опять у Вас какие-то "задачи обслуживания"  Плачущий
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #3 : Февраль 24, 2013, 13:49 »

Дамп памяти это конечно хорошо, но лично мне он мало о чем говорит, может я не настолько хорошо его понимаю, но когда идет список hex кода и мол приложение упало в QtNetwork.dll в 0x73dc3 вообще ничего не говорит Улыбающийся Сидел я значит вчера и игрался в Starcraft 2 ,что то наделал там и он у меня упал, после падения появилось окошко, с надписью приложение упало при работе с OpenGL бла бла в такой то процедуре и галочка отправить это разработчику или нет. И я задумался софт вроде как делаем публичный используется на множестве компьютеров, конфигураций естественно тысячи, где то может ,что то не так сработать и софт упадет. Так вот я и задумался что было бы здорово иметь возможность отловить именно место падения софта, то есть имя процедуры может даже класс, естественно сопутствующую инфу и дать возможность юзверю отправить это дело разработчику. Ну по сути то ,что я увидел у Blizzard. И собственно говоря меня мучает вопрос как они это сделали, навряд ли каждую процедуру в try catch заключали.
Записан
Bepec
Гость
« Ответ #4 : Февраль 24, 2013, 16:56 »

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

PS сам снимал дампы, сам пытался открыть - почему то нет стандартных решений для просмотра дампов. Никак символьные файлы не цеплялись, а в ассемблере нифига непонятно Веселый
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Февраль 24, 2013, 17:11 »

Дамп памяти это конечно хорошо, но лично мне он мало о чем говорит,
Как и мне и любому другому, а это просто значит что ничего хорошего в нем нет. У Вас чисто велосипедная идея, это давно есть, и прекрасно работает, и юзверь отправить может. Тем более странно что на Mac Вы работаете, неужели никогда не сталкивались  Непонимающий
Записан
maxxant
Гость
« Ответ #6 : Февраль 24, 2013, 19:12 »

именно кросплатформенно есть же
http://code.google.com/p/google-breakpad/

если что, есть краткое описание на русском:
http://lo-tips.blogspot.ru/2011/03/google-breakpad.html
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #7 : Февраль 24, 2013, 22:08 »

Igors, на Mac , да, это сделано хорошо, но кабы хочется все платформы сразу и какую нибудь свою оболочку. За Google Breakpad спасибо, покурю, вроде ,что то похожее.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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