Автоматическое создание дампа приложения
От: yuske  
Дата: 23.08.08 17:44
Оценка:
Сейчас обдумываю идею создания дампа падения (зависания) приложения. Пока используется класс формирующий .RPT файл с адресом падения приложения и стеком вызовов.

Суть такова: при падении приложения у клиента создается дамп, который автоматически высылается разработчику. Еще если у клиента возникает проблема с нашим приложением, клиент создает (одним нажатием кнопки ) дамп приложения и высылает нам. Так имея дамп нет необходимости воспроизводить проблему. Еще хотелось бы иметь систему автоматического разбора дампов, что бы не искать файлы нужного релиза вручную, а при загрузки дампа они автоматически подгружались.

Существуют, какие-либо библиотеки и/или коммерческие продукты позволяющие автоматизировать этот процесс? И как вы решаете эту проблему, что используете?
дамп
Re: Автоматическое создание дампа приложения
От: . Великобритания  
Дата: 23.08.08 18:07
Оценка: 2 (1)
yuske wrote:

> Суть такова: при падении приложения у клиента создается дамп, который

> автоматически высылается разработчику. Еще если у клиента возникает
http://www.codeproject.com/KB/debug/crash_report.aspx
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[2]: Автоматическое создание дампа приложения
От: Cyberax Марс  
Дата: 23.08.08 18:15
Оценка: 2 (1)
Здравствуйте, ., Вы писали:

>> Суть такова: при падении приложения у клиента создается дамп, который

>> автоматически высылается разработчику. Еще если у клиента возникает
.>http://www.codeproject.com/KB/debug/crash_report.aspx
Ещё есть http://www.codeproject.com/KB/debug/XCrashReportPt4.aspx
Sapienti sat!
Re: Автоматическое создание дампа приложения
От: mda Беларусь  
Дата: 25.08.08 08:26
Оценка: 4 (2)
Y>Существуют, какие-либо библиотеки и/или коммерческие продукты позволяющие автоматизировать этот процесс? И как вы решаете эту проблему, что используете?
используем BugTrap от IntelleSoft смотри здесь
bugtrap
Re: Автоматическое создание дампа приложения
От: LMars Россия  
Дата: 26.08.08 07:11
Оценка:
Здравствуйте, yuske, Вы писали:

Y>Суть такова: при падении приложения у клиента создается дамп, который автоматически высылается разработчику.


MiniDumpWriteDump()

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


Это надо копать в сторону Symbol Server и Source Server
Symbol Server — это индексный каталог для dll и pdb
Source Server — это система, позволяющая писать и читать информацию об версиях исходных файлов в/из pdb
Re[2]: Автоматическое создание дампа приложения
От: yuske  
Дата: 27.08.08 22:53
Оценка:
Здравствуйте, LMars, Вы писали:

LM>Здравствуйте, yuske, Вы писали:


Y>>Суть такова: при падении приложения у клиента создается дамп, который автоматически высылается разработчику.


LM>MiniDumpWriteDump()


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


LM>Это надо копать в сторону Symbol Server и Source Server

LM>Symbol Server — это индексный каталог для dll и pdb
LM>Source Server — это система, позволяющая писать и читать информацию об версиях исходных файлов в/из pdb

Да, про это я почитал, и суть как настроить и реализовать уловил. Но перед тем как самому заниматься реализацией этого функционала (тратить человеко-часы) хотелось бы посмотреть какие коммерческие системы существуют, возможно, проще купить. Ну или воспользоваться бесплатными библиотеками о которых писали выше.

И еще для меня важный вопрос: насколько это на практике помогает при отладки, кто что использует и используете ли вообще какую-то единую систему??? А если не используете то почему??? Т.е. стоит ли заниматься внедрением/разработкой системы создания и разбора дампов, и какие подводные камни встретятся???

Всем откликнувшимся огромное спасибо, ссылки действительно полезные
Re[3]: Автоматическое создание дампа приложения
От: LMars Россия  
Дата: 28.08.08 06:21
Оценка: 2 (1)
Здравствуйте, yuske, Вы писали:

Y>Да, про это я почитал, и суть как настроить и реализовать уловил. Но перед тем как самому заниматься реализацией этого функционала (тратить человеко-часы) хотелось бы посмотреть какие коммерческие системы существуют, возможно, проще купить. Ну или воспользоваться бесплатными библиотеками о которых писали выше.


Для реализации "Symbol Server" и "Source Server" есть Debugging Tools for Windows, тут уже ничего придумывать не надо.

А для отсылки дампов с компьютера пользователя и учета их на стороне разработчиков... не слышал я про такие системы.

У нас дампы с компьютера пользователя посылаются на e-mail (самописный классик).

На нашей стороне крутится сервис (самописный), который получает эти письма и создает WorkItem_ы в TFS.
Разработчики их потом анализируют.
Причем этот сервис умеет объединять одинаковый креши (по версии программы, месту падения и коду ошибки), что также облегчает нам жизнь.

Y>И еще для меня важный вопрос: насколько это на практике помогает при отладки,

Сложный вопрос.

Простейшие падения программы — очень хорошо помогает фиксить, особенно когда дамп создан с флагом MiniDumpWithIndirectlyReferencedMemory, тогда при дебаге дампа, можно смотреть значения некоторых переменных.

Иногда дамп создается криво и стек показывается неправильно.

Иногда по дампу видно, что происходит разыменование нулевого указателя... и вообщем-то все понятно... пиши проверку перед тем как разыименовывать! Но по логике программы нулевого указателя в этом иесте быть не должно! И вот такой креш понять сложнее

Y>Т.е. стоит ли заниматься внедрением/разработкой системы создания и разбора дампов ... ???

Но в целом овчинка стоит выделки! Без этой системы в серьезном приложении как без рук! После ее внедрения становится намного меньше проблем при общении с пользователями... упало — см. дамп... не надо писать какие-то логи... выяснять последовательность действий — смотришь дамп и имеешь подробную информацию о падении программы.
Re: Автоматическое создание дампа приложения
От: longlivedeath  
Дата: 28.08.08 07:00
Оценка: 2 (1)
Здравствуйте, yuske, Вы писали:

Y>Сейчас обдумываю идею создания дампа падения (зависания) приложения. Пока используется класс формирующий .RPT файл с адресом падения приложения и стеком вызовов.

Y>[...]
Y>Существуют, какие-либо библиотеки и/или коммерческие продукты позволяющие автоматизировать этот процесс? И как вы решаете эту проблему, что используете?

Посмотри на Breakpad, он мультиплатформенный и используется, среди прочего, в Файрфоксе.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.