Мультиплатформенный отчет о сбоях? - PullRequest
4 голосов
/ 16 мая 2011

Каков наилучший способ создания отчетов о сбоях в кроссплатформенном приложении на c ++ (windows, mac, linux)? Заглянул в Google Breakpad, но потратил несколько недель, пытаясь заставить socorro (UI) работать безрезультатно.

edit: @Nim, чтобы очистить, я хочу отправить трассировку стека на мой сервер, когда происходит какое-то исключение.

Ответы [ 2 ]

5 голосов
/ 17 мая 2011

Когда мы перешли на кроссплатформенность (от ранее только для Windows), мы потратили много времени на изучение возможных инструментов именно для этого.Google Breakpad действительно является лучшим кроссплатформенным решением.

Ваша проблема - Сокорро, которая огромна, запутана и сбивает с толку.Я могу предложить два маршрута:

  • Отбросьте текущую версию Socorro, которая слишком сильно влюблена в новомодные игрушки OSS, такие как Hadoop, и откатитесь на Socorro 1.x.Вам нужно будет проделать немного больше работы, чтобы настроить свои процессоры, и ваши дампы попадут в таблицу Postgres, но у вас будет гораздо меньше движущихся частей и сумасшедшая инфраструктура для работы.
  • Забудьте о Socorro в целом и напишите свои собственные процессоры для дампов Breakpad и пользовательский интерфейс для их просмотра.Breakpad уже проделал действительно тяжелую работу - анализ символов и перехват исключений - поэтому все, что вам нужно написать, - это сборщик, в который можно загружать дампы, ферма для запуска на них процессоров Breakpad, место для храненияобработанные результаты и что-то для их просмотра.

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

2 голосов
/ 16 мая 2011

Я сомневаюсь, что есть надежный, кроме Google-BreakPad, как Win / Mac / Linux All-in-One решение. Лучше всего было бы использовать библиотеку кроссплатформенной регистрации и обрабатывать исключения SEH, а также использовать windbg, если вам нужны мини-дампы (вот несколько хороших ресурсов по этому поводу: http://www.debuginfo.com/articles.html)

...