Russian Qt Forum

Qt => Общие вопросы => Тема начата: romanick от Июль 26, 2013, 12:24



Название: google breakpad+qt
Отправлено: romanick от Июль 26, 2013, 12:24
Добрый день!
qmake + Qt 5.1 + MSVC2012
Кто-нибудь использовал для своего qt-приложения crash reporting от google-breakpad?
На их сайте (http://code.google.com/p/google-breakpad/wiki/GettingStartedWithBreakpad) приведена схема работы breakpad. У меня получилось создать minidump при крахе приложения, однако получить стек вызовов (как на последнем этапе в схеме) у меня выходит только для debug-версии приложения, что не есть хорошо. Если я собираю release, то утилита minidump_stalckwalk создаёт стек вызовов без символов, что делает его бесполезным. Почему это происходит понять я никак не могу.

Ошибки такие:
Цитировать
2013-07-26 13:13:14: minidump.cc:1913: INFO: MinidumpModule could not determine debug_identifier for P:\personal-plus\bin\b2btech.exe
2013-07-26 13:14:32: basic_code_modules.cc:88: INFO: No module at 0xc
2013-07-26 13:14:32: simple_symbol_supplier.cc:135: ERROR: Can't construct symbol file path without debug_file (code_file = b2btech.exe)

По пути P:\personal-plus\bin\b2btech.exe лежит отладочная версия проги. pdb-файл рядом.

В качестве альтернативы, в принципе, можно временно дать клиенту и отладочную версию программы (где стек вызовов успешно создаётся при помощи minidump_stalckwalk), но я не пойму как отключить в ней сообщения на ошибках типа Debug Error ([Прервать], [Повторить], [Пропустить]) которые клиенту совсем не нужны.
Для этого пробовал:
* try-catch
* SetErrorMode(SEM_FAILCRITICALERRORS); // попробовал все параметры
* #pragma runtime_checks( "", off )
* отключение just-in-time debugging в реестре
не помогает.

HELP!!!


Название: Re: google breakpad+qt
Отправлено: twp от Июль 26, 2013, 17:58
очевидно надо добавить отладочные символы в релиз
Код
CONFIG(release, debug|release) {
   QMAKE_CXXFLAGS *= -Zi
   QMAKE_LFLAGS *= /DEBUG
}