2007-12-18

Crash Report

Crash report__После того, как с большим трудом удалось продиагностировать Unhandled exception у пользователя (юзер раздражителен, плохо читает инструкции, да и ему проще снести софтину, чем разбираться в ее проблемах), стало очевидно, что необходим простой способ для оповещения разработчиков об ошибках. В закромах давно лежала вкусная ссылка (то же самое на google code), с которой осталось разобраться и подключить к приложению.
Первые впечатление были как у Кусто нашедшего дельфина с тремя глазами - библиотечка (crashrpt) генерирует замечательный отчет: crash dump + красивое сообщение об ошибке, к которому можно подключить несколько пользовательских файлов (например конфиги и логи). Более того, потом crashrpt сохраняет все это добро одним zip файлом и создает письмо к которому аттачит отчет. Пользователю остается только нажать кнопку отправить.
Все было чудесно до тех пор, пока не начал подключать либу к проекту - библиотека потребовала WTL. У меня ее нет за ненадобностью и раньше интересовался ей только поскольку-постольку (реального опыта ноль целых ноль десятых). Скачал, поставил (если такое слово применимо - библиотека поставляется только в хидерах), после чего выяснилось, что WTL не способно жить без ATL. На этом месте радость закончилась - т.к. в состав Express-ов ATL не входит.
Поманили морковкой, дали пооблизывать, после чего жестко обломали.

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

Мимоходом попытался проверить всплывшую в памяти информацию, что ATL входит только в состав платных студий.
Поиск в "базе знаний" Майкрософт. Как они сами с такой помойкой работают?

PS В закромах остались ссылочки
"XCrashReport : Exception Handling and Crash Reporting" By Hans Dietrich. Буду разбираться.
http://www.codeproject.com/KB/debug/XCrashReportPt1.aspx
http://www.codeproject.com/KB/debug/XCrashReportPt2.aspx
http://www.codeproject.com/KB/debug/XCrashReportPt3.aspx
http://www.codeproject.com/KB/debug/XCrashReportPt4.aspx

PPS Когда апдейтил пост произошли ошибка на блогспоте, о чем пришел соответствующий репорт :)


При этом никакой ошибки, кроме сообщения о ней мне обнаружить не удалось, как ни искал :)

4 комментария:

Анонимный комментирует...

Вообще-то ATL есть в составе Platform SDK, который бесплатный, и без которого в експресс-версиях студии под винду особо не попрограммируешь

ShaggyOwl комментирует...

Да, действительно входит - никогда бы не подумал :)
Спасибо!

ShaggyOwl комментирует...

LINK : fatal error LNK1104: cannot open file 'atlthunk.lib'
здесь любопытный комментарий

Looks like atlthunk.lib is internal to Windows team library used in 32bit builds. In atlbase.h from PSDK import for this library is in the section of #ifdef _M_IX86, which is 32bit mode for x86 processors. This library is not shipped with any build of PSDK because PSDK does not support using PSDK's version of ATL in 32bit builds. VC version of ATL does not import this library and works fine for 32bit and 64bit.


Забавные ребята :)

zexspectrum комментирует...

Новую версия CrashRpt, которая работает в том числе и в VC++ Express, можно скачать здесь http://code.google.com/p/crashrpt/