SlideShare a Scribd company logo
1 of 29
ИСПОЛЬЗОВАНИЕ СИСТЕМ
АНАЛИТИКИ КРЭШЕЙ
ЛАПИЦКИЙ АРТЁМ
LAPITSKY.ARTEM@GMAIL.COM
1
COREHARD // ВВЕДЕНИЕ /
ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016
OOPS…
2
Крэш — это такое состояние программы (приложения или
операционной системы), в котором дальнейшее корректное
её выполнение не представляется возможным.
COREHARD // ВВЕДЕНИЕ /
ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016
ЧТО ТАКОЕ CRASH?
ОТКУДА БЕРУТСЯ КРЭШИ?
4
COREHARD // ОТКУДА БЕРУТСЯ КРЭШИ /
ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016
ПРИЧИНЫ КРЭШЕЙ ПРИЛОЖЕНИЙ
Основные причины крэшей приложений
• Необработанное исключение или сигнал;
• Попытка чтения (или записи) памяти по адресу, не выделенному приложению для
чтения (или записи);
• Переполнение стека;
• Попытка выполнить инструкцию с некорректными параметрами (деление на 0,
работа с невыровненной памятью на ARM, …);
• Попытка выполнить некорректную инструкцию или инструкцию, не доступную в
текущем режиме работы процессора;
• Некорректная работа с системными функциями (передача неверных параметров,
недостаточные полномочия, нехватка памяти, …), нарушение целостности
системных объектов;
• Вызов std::terminate или std::abort при серьезных нарушениях логики работы
приложения, после которых дальнейшее его выполнение не имеет смысла.
5
COREHARD // ОТКУДА БЕРУТСЯ КРЭШИ /
ЛАПИЦКИЙ АРТЁМ // COREHARD // 22.10.2016
КРЭШИ И ПОЛЬЗОВАТЕЛИ
Для пользователя крэш – это больше чем неудобство
• Внезапное завершение приводит к потере контекста работы с
приложением, восстановить который может быть сложно или даже
невозможно;
• Крэш может привести к потере данных пользователя, перехода
данных приложения в противоречивое или некорректное состояние;
• Катастрофически ухудшается пользовательский опыт.
6
COREHARD // ОТКУДА БЕРУТСЯ КРЭШИ /
ЛАПИЦКИЙ АРТЁМ // COREHARD // 22.10.2016
НЕПРИЯТНОСТИ СЛУЧАЮТСЯ
Контроль качества не способен выявить все возможные проблемы
• Разнообразие устройств;
• Разнообразие операционных систем;
• Разнообразие программного окружения;
• Ошибки при разработке приложения;
• Ошибки в сторонних библиотеках и системных API;
• Ошибки в инструментарии разработки.
РАССЛЕДОВАНИЕ КРЭШЕЙ
8
COREHARD // РАССЛЕДОВАНИЕ КРЭША /
ЛАПИЦКИЙ АРТЁМ // COREHARD // 22.10.2016
РАССЛЕДОВАНИЕ ПРИЧИН КРЭША
Исходные данные
• Описание проблемы пользователем;
• Stack trace потоков приложения в момент падения;
• Дамп памяти;
• Логи работы приложения / breadcrumbs;
• Информация об окружении и логическом состоянии приложения.
9
Stack trace — это отчет о
состоянии стека вызовов
приложения в конкретный
момент времени,
представляющий из себя
список активных stack
frame’ов;
Его анализ позволяет точно
локализовать место
возникновения крэша и
узнать последовательность
вызовов, которая к нему
привела.
COREHARD // РАССЛЕДОВАНИЕ КРЭША /
ЛАПИЦКИЙ АРТЁМ // COREHARD // 22.10.2016
STACK TRACE
10
Memory dump — это
содержимое памяти
приложения в конкретный
момент времени;
Будучи загруженным в
отладчике он позволяет
изучить состояние программы
в момент его создания (так,
будто бы отладчик был вызван
на точке останова).
COREHARD // РАССЛЕДОВАНИЕ КРЭША /
ЛАПИЦКИЙ АРТЁМ // COREHARD // 22.10.2016
MEMORY DUMP
11
Анализ логов поможет
изучить работу упавшего
приложения в течение всего
времени его жизни;
В отличие от других данных,
логи позволяют обнаружить
причину крэша даже тогда,
когда момент возникновения
проблемы и момент
«падения» разделены во
времени и не связаны
цепочкой вызовов.
COREHARD // РАССЛЕДОВАНИЕ КРЭША /
ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016
ЛОГИ РАБОТЫ ПРИЛОЖЕНИЯ
12
При анализе проблемы или
попытке ее воспроизвести
очень полезно иметь
сведения об устройстве и
его компонентах, версии
операционной системы и
драйверов, значений
системных счетчиков,
состоянии дисков и
оперативной памяти,
статуса соединения с сетью
и другой информации о
состоянии среды, в которой
выполнялось приложение.
COREHARD // РАССЛЕДОВАНИЕ КРЭША /
ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016
ИНФОРМАЦИЯ ОБ ОКРУЖЕНИИ
13
Системы аналитики отчетов о падении автоматизируют
процесс сбора, обработки и группировки крэшей,
возникающих на устройствах пользователей;
Зачастую являются частью более общих решений по
аналитике и дистрибуции приложений.
COREHARD // РАССЛЕДОВАНИЕ КРЭША /
ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016
СИСТЕМЫ АНАЛИТИКИ КРЕШЕЙ СПЕШАТ НА ПОМОЩЬ
14
Группировка похожих крэшей, которые вызваны одной и той же
проблемой;
Анализ возникающих проблем в динамике с уведомлением о статусе
крэшей с наибольшим эффектом;
Телеметрия и различные дополнительные метрики (сколько
пользователей онлайн, количество новых пользователей, количество
crash-free пользователей и т.д.);
Удобная навигация по группам и отдельным отчетам, фильтрация и
поиск;
API для реализации своих сценариев анализа отчетов;
Интеграция с популярными багтерекерами и системами управления
проектами.
COREHARD // РАССЛЕДОВАНИЕ КРЭША /
ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016
ПОЛЕЗНЫЕ ФУНКЦИИ
15
COREHARD // РАССЛЕДОВАНИЕ КРЭША /
ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016
СХЕМА РАБОТЫ РЕШЕНИЙ ПО ОТПРАВКЕ И АНАЛИЗУ КРЕШЕЙ
Application
Crash
handler
Crash
reporter
Analytics
provider
Crash reports
Build
machine
Symbols
Binary
<crash group>
0 ntdll.dll + 0xa5c24
1 myapp.exe + 0x35bae
2 myapp.exe + 0x64370
3 myapp.exe + 0x112180
4 myapp.exe + 0x1d5c70
<crash group>
0 ntdll.dll!NtOpenFile()
1 myapp.exe!read_config() [...
2 myapp.exe!read_settings() [...
3 myapp.exe!init() [myapp.cpp:43]
4 myapp.exe!main() [myapp.cpp:12]
Binary
АНАЛИТИКА КРЭШЕЙ ОТ
ПЛАТФОРМОДЕРЖАТЕЛЕЙ
17
COREHARD // АНАЛИТИКА КРЭШЕЙ ОТ ПЛАТФОРМОДЕРЖАТЕЛЕЙ /
ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016
АНАЛИТИКА КРЭШЕЙ ОТ ПЛАТФОРМОДЕРЖАТЕЛЕЙ
Windows Error Reporting (Watson)
• Позволяет создавать отчеты о сбоях, прикреплять к ним дампы памяти и
содержимое отдельных блоков памяти программы, дополнительные файлы и
параметры;
• Работает автоматически для всех приложений, не обрабатывающих крэши
самостоятельно, отправляя базовый отчет об ошибке и минидамп;
• Отчеты об ошибках приложений отправляются в службу Windows Quality
Online Services, зарегистрировавшись в которой, можно получить к ним
доступ.
18
COREHARD // АНАЛИТИКА КРЭШЕЙ ОТ ПЛАТФОРМОДЕРЖАТЕЛЕЙ /
ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016
АНАЛИТИКА КРЭШЕЙ ОТ ПЛАТФОРМОДЕРЖАТЕЛЕЙ (2)
Microsoft Dev Center
• Предоставляет доступ к информации о сбоях приложений из Windows Store (Windows
Universal Platform, Windows Phone 7/8);
• Производит символизацию stack trace’ов, по которым группирует возникшие проблемы;
• Стандратный обработчик крэшей для приложений из Windows Store срабатывает
автоматически, отправляя отчет в Microsoft.
19
COREHARD // АНАЛИТИКА КРЭШЕЙ ОТ ПЛАТФОРМОДЕРЖАТЕЛЕЙ /
ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016
АНАЛИТИКА КРЭШЕЙ ОТ ПЛАТФОРМОДЕРЖАТЕЛЕЙ (3)
Apple Crash Report Service
• Позволяет прямо из XCode просматривать отчеты о падении вашего приложения
для MacOS или iOS, которые отправили пользователи;
• Символизирует stack trace и группирует отчеты по ним;
• Доступная информация ограничивается stack trace’ом и небольшим количеством
сведений об устройствах и операционных системах, на которых произошел сбой;
• Работает автоматически для приложений, не обрабатывающих крэши
самостоятельно.
20
COREHARD // АНАЛИТИКА КРЭШЕЙ ОТ ПЛАТФОРМОДЕРЖАТЕЛЕЙ /
ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016
АНАЛИТИКА КРЭШЕЙ ОТ ПЛАТФОРМОДЕРЖАТЕЛЕЙ (4)
Android Market Crash Reports
• Предоставляет доступ к отчетам об ошибках, которые присылают
пользователи;
• Обработчик крэшей вызывается для необработанных исключений
управляемого кода, поэтому отчетов о крэшах в C++/NDK приложениях
или библиотеках увидеть не удастся.
АНАЛИТИКА КРЭШЕЙ ОТ
СТОРОННИХ РАЗРАБОТЧИКОВ
22
COREHARD // АНАЛИТИКА КРЭШЕЙ ОТ СТОРОННИХ РАЗРАБОТЧИКОВ /
ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016
ПОДДЕРЖКА ПЛАТФОРМ (ПО СОСТОЯНИЮ НА ОКТЯБРЬ 2016)
SDK NDK .NET Native .NET Native
B B
B Limited B Limited
23
Отправка отчетов как о крэшах, так и об обработанных
исключениях;
Включение в отчет пользовательской метаинформации;
Breadcrumbs — последовательность значимых изменений в
состоянии приложения или системы; многие события
логируются автоматически.
COREHARD // АНАЛИТИКА КРЭШЕЙ ОТ СТОРОННИХ РАЗРАБОТЧИКОВ /
ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016
APTELIGENT
24
Глубокий анализ и приоритезация крэшей согласно их массовости и
частоте;
Интегрируется с популярными багтрекерами;
В отчетах предоставляет достаточно много информации о состоянии
устройства и ОС в момент падения;
Позволяет создавать отчеты не только при крэше, но и для обработанных
исключений;
В клиентской библиотеке есть собственный логгер; полученный лог
прикрепляется к отчету;
Есть возможность задания пользовательских параметров, которые будут
добавлены в отчет;
Является также системой распространения сборок приложения.
COREHARD // АНАЛИТИКА КРЭШЕЙ ОТ СТОРОННИХ РАЗРАБОТЧИКОВ /
ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016
CRASHLYTICS
25
COREHARD // АНАЛИТИКА КРЭШЕЙ ОТ ПЛАТФОРМОДЕРЖАТЕЛЕЙ /
ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016
HOCKEYAPP
Поддерживает множество платформ, в т.ч. позволяет
отправлять отчеты, созданные библиотекой Google Breakpad;
Есть телеметрия (пользовательская активность, crash free
пользователи);
Позволяет прикреплять к отчетам логи, дополнительные
файлы и параметры;
Является также системой распространения сборок
приложений;
Поддерживает интеграцию с подавляющим большинством
популярных багтрекеров.
26
Включайте в отчеты об ошибках только техническую
информацию, которая необходима для последующего решения
проблем. Никогда не логируйте идентификаторы, пин-коды,
ключи, пароли, токены и прочую информацию, которой могут
воспользоваться злоумышленники для несанкционированных
действий от имени пользовтаеля или вашей системы;
Уважайте приватность ваших пользователей и не включайте
личную информацию (e-mail, номер телефона, списки контактов)
в отчеты об ошибках.
COREHARD // СОВЕТЫ /
ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016
ЛОГИРУЙТЕ РАЗУМНО
СПАСИБО ЗА ВНИМАНИЕ!
ЛАПИЦКИЙ АРТЁМ
Software Developer https://www.facebook.com/WargamingMinsk
ANY QUESTIONS?
lapitsky.artem@gmail.com
wargaming.com
https://www.linkedin.com/company/wargaming-net

More Related Content

Similar to использование систем аналитики крэшей

Cocaine: погружение в облака — Евгений Сафронов
Cocaine: погружение в облака — Евгений СафроновCocaine: погружение в облака — Евгений Сафронов
Cocaine: погружение в облака — Евгений СафроновYandex
 
WAF наше все?!
WAF наше все?!WAF наше все?!
WAF наше все?!Dmitry Evteev
 
С чего начать свой путь этичного хакера? - Вадим Чакрян
С чего начать свой путь этичного хакера? - Вадим ЧакрянС чего начать свой путь этичного хакера? - Вадим Чакрян
С чего начать свой путь этичного хакера? - Вадим ЧакрянHackIT Ukraine
 
TMPA-2015: Multi-Module Application Tracing in z/OS Environment
TMPA-2015: Multi-Module Application Tracing in z/OS EnvironmentTMPA-2015: Multi-Module Application Tracing in z/OS Environment
TMPA-2015: Multi-Module Application Tracing in z/OS EnvironmentIosif Itkin
 
безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4rit2011
 
Безопасность веб-приложений сегодня
Безопасность веб-приложений сегодняБезопасность веб-приложений сегодня
Безопасность веб-приложений сегодняDmitry Evteev
 
Миграция данных из Oracle в Postgres
Миграция данных из Oracle в PostgresМиграция данных из Oracle в Postgres
Миграция данных из Oracle в PostgresCUSTIS
 
#PostgreSQLRussia 2015.09.15 - Максим Трегубов, CUSTIS - Миграция из Oracle в...
#PostgreSQLRussia 2015.09.15 - Максим Трегубов, CUSTIS - Миграция из Oracle в...#PostgreSQLRussia 2015.09.15 - Максим Трегубов, CUSTIS - Миграция из Oracle в...
#PostgreSQLRussia 2015.09.15 - Максим Трегубов, CUSTIS - Миграция из Oracle в...Nikolay Samokhvalov
 
АРМ - платформа разработки проекта "Госархивы СПб"
АРМ - платформа разработки проекта "Госархивы СПб"АРМ - платформа разработки проекта "Госархивы СПб"
АРМ - платформа разработки проекта "Госархивы СПб"devclub
 
Windbg: когда у нас не воспроизводится. Александр Головач ➠ CoreHard Autumn ...
Windbg: когда у нас не воспроизводится. Александр Головач ➠  CoreHard Autumn ...Windbg: когда у нас не воспроизводится. Александр Головач ➠  CoreHard Autumn ...
Windbg: когда у нас не воспроизводится. Александр Головач ➠ CoreHard Autumn ...corehard_by
 
Анализ работы антивирусных лабораторий
Анализ работы антивирусных лабораторийАнализ работы антивирусных лабораторий
Анализ работы антивирусных лабораторийPositive Hack Days
 
Дмитрий Грошев, Фёдор Гоголев. Erlang и Haskell в production: проблемы и решения
Дмитрий Грошев, Фёдор Гоголев. Erlang и Haskell в production: проблемы и решенияДмитрий Грошев, Фёдор Гоголев. Erlang и Haskell в production: проблемы и решения
Дмитрий Грошев, Фёдор Гоголев. Erlang и Haskell в production: проблемы и решенияFProg
 
Что такое "Parallel Lint"?
Что такое "Parallel Lint"?Что такое "Parallel Lint"?
Что такое "Parallel Lint"?Tatyanazaxarova
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Ontico
 
Pt devteev-risspa
Pt devteev-risspaPt devteev-risspa
Pt devteev-risspayaevents
 
Программирование на языке C Sharp (СИ решетка) ПРАКТИКУМ
Программирование на языке C Sharp (СИ решетка) ПРАКТИКУМПрограммирование на языке C Sharp (СИ решетка) ПРАКТИКУМ
Программирование на языке C Sharp (СИ решетка) ПРАКТИКУМAlexandr Konfidentsialno
 
Android.глазами хакера
Android.глазами хакераAndroid.глазами хакера
Android.глазами хакераNeuron Hackspace
 
2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js
2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js
2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.jsОмские ИТ-субботники
 
6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remoting6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remotingKewpaN
 
Теория и практика написания безопасного кода на C++
Теория и практика написания безопасного кода на C++Теория и практика написания безопасного кода на C++
Теория и практика написания безопасного кода на C++corehard_by
 

Similar to использование систем аналитики крэшей (20)

Cocaine: погружение в облака — Евгений Сафронов
Cocaine: погружение в облака — Евгений СафроновCocaine: погружение в облака — Евгений Сафронов
Cocaine: погружение в облака — Евгений Сафронов
 
WAF наше все?!
WAF наше все?!WAF наше все?!
WAF наше все?!
 
С чего начать свой путь этичного хакера? - Вадим Чакрян
С чего начать свой путь этичного хакера? - Вадим ЧакрянС чего начать свой путь этичного хакера? - Вадим Чакрян
С чего начать свой путь этичного хакера? - Вадим Чакрян
 
TMPA-2015: Multi-Module Application Tracing in z/OS Environment
TMPA-2015: Multi-Module Application Tracing in z/OS EnvironmentTMPA-2015: Multi-Module Application Tracing in z/OS Environment
TMPA-2015: Multi-Module Application Tracing in z/OS Environment
 
безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4
 
Безопасность веб-приложений сегодня
Безопасность веб-приложений сегодняБезопасность веб-приложений сегодня
Безопасность веб-приложений сегодня
 
Миграция данных из Oracle в Postgres
Миграция данных из Oracle в PostgresМиграция данных из Oracle в Postgres
Миграция данных из Oracle в Postgres
 
#PostgreSQLRussia 2015.09.15 - Максим Трегубов, CUSTIS - Миграция из Oracle в...
#PostgreSQLRussia 2015.09.15 - Максим Трегубов, CUSTIS - Миграция из Oracle в...#PostgreSQLRussia 2015.09.15 - Максим Трегубов, CUSTIS - Миграция из Oracle в...
#PostgreSQLRussia 2015.09.15 - Максим Трегубов, CUSTIS - Миграция из Oracle в...
 
АРМ - платформа разработки проекта "Госархивы СПб"
АРМ - платформа разработки проекта "Госархивы СПб"АРМ - платформа разработки проекта "Госархивы СПб"
АРМ - платформа разработки проекта "Госархивы СПб"
 
Windbg: когда у нас не воспроизводится. Александр Головач ➠ CoreHard Autumn ...
Windbg: когда у нас не воспроизводится. Александр Головач ➠  CoreHard Autumn ...Windbg: когда у нас не воспроизводится. Александр Головач ➠  CoreHard Autumn ...
Windbg: когда у нас не воспроизводится. Александр Головач ➠ CoreHard Autumn ...
 
Анализ работы антивирусных лабораторий
Анализ работы антивирусных лабораторийАнализ работы антивирусных лабораторий
Анализ работы антивирусных лабораторий
 
Дмитрий Грошев, Фёдор Гоголев. Erlang и Haskell в production: проблемы и решения
Дмитрий Грошев, Фёдор Гоголев. Erlang и Haskell в production: проблемы и решенияДмитрий Грошев, Фёдор Гоголев. Erlang и Haskell в production: проблемы и решения
Дмитрий Грошев, Фёдор Гоголев. Erlang и Haskell в production: проблемы и решения
 
Что такое "Parallel Lint"?
Что такое "Parallel Lint"?Что такое "Parallel Lint"?
Что такое "Parallel Lint"?
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
 
Pt devteev-risspa
Pt devteev-risspaPt devteev-risspa
Pt devteev-risspa
 
Программирование на языке C Sharp (СИ решетка) ПРАКТИКУМ
Программирование на языке C Sharp (СИ решетка) ПРАКТИКУМПрограммирование на языке C Sharp (СИ решетка) ПРАКТИКУМ
Программирование на языке C Sharp (СИ решетка) ПРАКТИКУМ
 
Android.глазами хакера
Android.глазами хакераAndroid.глазами хакера
Android.глазами хакера
 
2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js
2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js
2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js
 
6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remoting6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remoting
 
Теория и практика написания безопасного кода на C++
Теория и практика написания безопасного кода на C++Теория и практика написания безопасного кода на C++
Теория и практика написания безопасного кода на C++
 

More from corehard_by

C++ CoreHard Autumn 2018. Создание пакетов для открытых библиотек через conan...
C++ CoreHard Autumn 2018. Создание пакетов для открытых библиотек через conan...C++ CoreHard Autumn 2018. Создание пакетов для открытых библиотек через conan...
C++ CoreHard Autumn 2018. Создание пакетов для открытых библиотек через conan...corehard_by
 
C++ CoreHard Autumn 2018. Что должен знать каждый C++ программист или Как про...
C++ CoreHard Autumn 2018. Что должен знать каждый C++ программист или Как про...C++ CoreHard Autumn 2018. Что должен знать каждый C++ программист или Как про...
C++ CoreHard Autumn 2018. Что должен знать каждый C++ программист или Как про...corehard_by
 
C++ CoreHard Autumn 2018. Actors vs CSP vs Tasks vs ... - Евгений Охотников
C++ CoreHard Autumn 2018. Actors vs CSP vs Tasks vs ... - Евгений ОхотниковC++ CoreHard Autumn 2018. Actors vs CSP vs Tasks vs ... - Евгений Охотников
C++ CoreHard Autumn 2018. Actors vs CSP vs Tasks vs ... - Евгений Охотниковcorehard_by
 
C++ CoreHard Autumn 2018. Знай свое "железо": иерархия памяти - Александр Титов
C++ CoreHard Autumn 2018. Знай свое "железо": иерархия памяти - Александр ТитовC++ CoreHard Autumn 2018. Знай свое "железо": иерархия памяти - Александр Титов
C++ CoreHard Autumn 2018. Знай свое "железо": иерархия памяти - Александр Титовcorehard_by
 
C++ CoreHard Autumn 2018. Информационная безопасность и разработка ПО - Евген...
C++ CoreHard Autumn 2018. Информационная безопасность и разработка ПО - Евген...C++ CoreHard Autumn 2018. Информационная безопасность и разработка ПО - Евген...
C++ CoreHard Autumn 2018. Информационная безопасность и разработка ПО - Евген...corehard_by
 
C++ CoreHard Autumn 2018. Заглядываем под капот «Поясов по C++» - Илья Шишков
C++ CoreHard Autumn 2018. Заглядываем под капот «Поясов по C++» - Илья ШишковC++ CoreHard Autumn 2018. Заглядываем под капот «Поясов по C++» - Илья Шишков
C++ CoreHard Autumn 2018. Заглядываем под капот «Поясов по C++» - Илья Шишковcorehard_by
 
C++ CoreHard Autumn 2018. Ускорение сборки C++ проектов, способы и последстви...
C++ CoreHard Autumn 2018. Ускорение сборки C++ проектов, способы и последстви...C++ CoreHard Autumn 2018. Ускорение сборки C++ проектов, способы и последстви...
C++ CoreHard Autumn 2018. Ускорение сборки C++ проектов, способы и последстви...corehard_by
 
C++ CoreHard Autumn 2018. Метаклассы: воплощаем мечты в реальность - Сергей С...
C++ CoreHard Autumn 2018. Метаклассы: воплощаем мечты в реальность - Сергей С...C++ CoreHard Autumn 2018. Метаклассы: воплощаем мечты в реальность - Сергей С...
C++ CoreHard Autumn 2018. Метаклассы: воплощаем мечты в реальность - Сергей С...corehard_by
 
C++ CoreHard Autumn 2018. Что не умеет оптимизировать компилятор - Александр ...
C++ CoreHard Autumn 2018. Что не умеет оптимизировать компилятор - Александр ...C++ CoreHard Autumn 2018. Что не умеет оптимизировать компилятор - Александр ...
C++ CoreHard Autumn 2018. Что не умеет оптимизировать компилятор - Александр ...corehard_by
 
C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...
C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...
C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...corehard_by
 
C++ CoreHard Autumn 2018. Concurrency and Parallelism in C++17 and C++20/23 -...
C++ CoreHard Autumn 2018. Concurrency and Parallelism in C++17 and C++20/23 -...C++ CoreHard Autumn 2018. Concurrency and Parallelism in C++17 and C++20/23 -...
C++ CoreHard Autumn 2018. Concurrency and Parallelism in C++17 and C++20/23 -...corehard_by
 
C++ CoreHard Autumn 2018. Обработка списков на C++ в функциональном стиле - В...
C++ CoreHard Autumn 2018. Обработка списков на C++ в функциональном стиле - В...C++ CoreHard Autumn 2018. Обработка списков на C++ в функциональном стиле - В...
C++ CoreHard Autumn 2018. Обработка списков на C++ в функциональном стиле - В...corehard_by
 
C++ Corehard Autumn 2018. Обучаем на Python, применяем на C++ - Павел Филонов
C++ Corehard Autumn 2018. Обучаем на Python, применяем на C++ - Павел ФилоновC++ Corehard Autumn 2018. Обучаем на Python, применяем на C++ - Павел Филонов
C++ Corehard Autumn 2018. Обучаем на Python, применяем на C++ - Павел Филоновcorehard_by
 
C++ CoreHard Autumn 2018. Asynchronous programming with ranges - Ivan Čukić
C++ CoreHard Autumn 2018. Asynchronous programming with ranges - Ivan ČukićC++ CoreHard Autumn 2018. Asynchronous programming with ranges - Ivan Čukić
C++ CoreHard Autumn 2018. Asynchronous programming with ranges - Ivan Čukićcorehard_by
 
C++ CoreHard Autumn 2018. Debug C++ Without Running - Anastasia Kazakova
C++ CoreHard Autumn 2018. Debug C++ Without Running - Anastasia KazakovaC++ CoreHard Autumn 2018. Debug C++ Without Running - Anastasia Kazakova
C++ CoreHard Autumn 2018. Debug C++ Without Running - Anastasia Kazakovacorehard_by
 
C++ CoreHard Autumn 2018. Полезный constexpr - Антон Полухин
C++ CoreHard Autumn 2018. Полезный constexpr - Антон ПолухинC++ CoreHard Autumn 2018. Полезный constexpr - Антон Полухин
C++ CoreHard Autumn 2018. Полезный constexpr - Антон Полухинcorehard_by
 
C++ CoreHard Autumn 2018. Text Formatting For a Future Range-Based Standard L...
C++ CoreHard Autumn 2018. Text Formatting For a Future Range-Based Standard L...C++ CoreHard Autumn 2018. Text Formatting For a Future Range-Based Standard L...
C++ CoreHard Autumn 2018. Text Formatting For a Future Range-Based Standard L...corehard_by
 
Исключительная модель памяти. Алексей Ткаченко ➠ CoreHard Autumn 2019
Исключительная модель памяти. Алексей Ткаченко ➠ CoreHard Autumn 2019Исключительная модель памяти. Алексей Ткаченко ➠ CoreHard Autumn 2019
Исключительная модель памяти. Алексей Ткаченко ➠ CoreHard Autumn 2019corehard_by
 
Как помочь и как помешать компилятору. Андрей Олейников ➠ CoreHard Autumn 2019
Как помочь и как помешать компилятору. Андрей Олейников ➠  CoreHard Autumn 2019Как помочь и как помешать компилятору. Андрей Олейников ➠  CoreHard Autumn 2019
Как помочь и как помешать компилятору. Андрей Олейников ➠ CoreHard Autumn 2019corehard_by
 
Автоматизируй это. Кирилл Тихонов ➠ CoreHard Autumn 2019
Автоматизируй это. Кирилл Тихонов ➠  CoreHard Autumn 2019Автоматизируй это. Кирилл Тихонов ➠  CoreHard Autumn 2019
Автоматизируй это. Кирилл Тихонов ➠ CoreHard Autumn 2019corehard_by
 

More from corehard_by (20)

C++ CoreHard Autumn 2018. Создание пакетов для открытых библиотек через conan...
C++ CoreHard Autumn 2018. Создание пакетов для открытых библиотек через conan...C++ CoreHard Autumn 2018. Создание пакетов для открытых библиотек через conan...
C++ CoreHard Autumn 2018. Создание пакетов для открытых библиотек через conan...
 
C++ CoreHard Autumn 2018. Что должен знать каждый C++ программист или Как про...
C++ CoreHard Autumn 2018. Что должен знать каждый C++ программист или Как про...C++ CoreHard Autumn 2018. Что должен знать каждый C++ программист или Как про...
C++ CoreHard Autumn 2018. Что должен знать каждый C++ программист или Как про...
 
C++ CoreHard Autumn 2018. Actors vs CSP vs Tasks vs ... - Евгений Охотников
C++ CoreHard Autumn 2018. Actors vs CSP vs Tasks vs ... - Евгений ОхотниковC++ CoreHard Autumn 2018. Actors vs CSP vs Tasks vs ... - Евгений Охотников
C++ CoreHard Autumn 2018. Actors vs CSP vs Tasks vs ... - Евгений Охотников
 
C++ CoreHard Autumn 2018. Знай свое "железо": иерархия памяти - Александр Титов
C++ CoreHard Autumn 2018. Знай свое "железо": иерархия памяти - Александр ТитовC++ CoreHard Autumn 2018. Знай свое "железо": иерархия памяти - Александр Титов
C++ CoreHard Autumn 2018. Знай свое "железо": иерархия памяти - Александр Титов
 
C++ CoreHard Autumn 2018. Информационная безопасность и разработка ПО - Евген...
C++ CoreHard Autumn 2018. Информационная безопасность и разработка ПО - Евген...C++ CoreHard Autumn 2018. Информационная безопасность и разработка ПО - Евген...
C++ CoreHard Autumn 2018. Информационная безопасность и разработка ПО - Евген...
 
C++ CoreHard Autumn 2018. Заглядываем под капот «Поясов по C++» - Илья Шишков
C++ CoreHard Autumn 2018. Заглядываем под капот «Поясов по C++» - Илья ШишковC++ CoreHard Autumn 2018. Заглядываем под капот «Поясов по C++» - Илья Шишков
C++ CoreHard Autumn 2018. Заглядываем под капот «Поясов по C++» - Илья Шишков
 
C++ CoreHard Autumn 2018. Ускорение сборки C++ проектов, способы и последстви...
C++ CoreHard Autumn 2018. Ускорение сборки C++ проектов, способы и последстви...C++ CoreHard Autumn 2018. Ускорение сборки C++ проектов, способы и последстви...
C++ CoreHard Autumn 2018. Ускорение сборки C++ проектов, способы и последстви...
 
C++ CoreHard Autumn 2018. Метаклассы: воплощаем мечты в реальность - Сергей С...
C++ CoreHard Autumn 2018. Метаклассы: воплощаем мечты в реальность - Сергей С...C++ CoreHard Autumn 2018. Метаклассы: воплощаем мечты в реальность - Сергей С...
C++ CoreHard Autumn 2018. Метаклассы: воплощаем мечты в реальность - Сергей С...
 
C++ CoreHard Autumn 2018. Что не умеет оптимизировать компилятор - Александр ...
C++ CoreHard Autumn 2018. Что не умеет оптимизировать компилятор - Александр ...C++ CoreHard Autumn 2018. Что не умеет оптимизировать компилятор - Александр ...
C++ CoreHard Autumn 2018. Что не умеет оптимизировать компилятор - Александр ...
 
C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...
C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...
C++ CoreHard Autumn 2018. Кодогенерация C++ кроссплатформенно. Продолжение - ...
 
C++ CoreHard Autumn 2018. Concurrency and Parallelism in C++17 and C++20/23 -...
C++ CoreHard Autumn 2018. Concurrency and Parallelism in C++17 and C++20/23 -...C++ CoreHard Autumn 2018. Concurrency and Parallelism in C++17 and C++20/23 -...
C++ CoreHard Autumn 2018. Concurrency and Parallelism in C++17 and C++20/23 -...
 
C++ CoreHard Autumn 2018. Обработка списков на C++ в функциональном стиле - В...
C++ CoreHard Autumn 2018. Обработка списков на C++ в функциональном стиле - В...C++ CoreHard Autumn 2018. Обработка списков на C++ в функциональном стиле - В...
C++ CoreHard Autumn 2018. Обработка списков на C++ в функциональном стиле - В...
 
C++ Corehard Autumn 2018. Обучаем на Python, применяем на C++ - Павел Филонов
C++ Corehard Autumn 2018. Обучаем на Python, применяем на C++ - Павел ФилоновC++ Corehard Autumn 2018. Обучаем на Python, применяем на C++ - Павел Филонов
C++ Corehard Autumn 2018. Обучаем на Python, применяем на C++ - Павел Филонов
 
C++ CoreHard Autumn 2018. Asynchronous programming with ranges - Ivan Čukić
C++ CoreHard Autumn 2018. Asynchronous programming with ranges - Ivan ČukićC++ CoreHard Autumn 2018. Asynchronous programming with ranges - Ivan Čukić
C++ CoreHard Autumn 2018. Asynchronous programming with ranges - Ivan Čukić
 
C++ CoreHard Autumn 2018. Debug C++ Without Running - Anastasia Kazakova
C++ CoreHard Autumn 2018. Debug C++ Without Running - Anastasia KazakovaC++ CoreHard Autumn 2018. Debug C++ Without Running - Anastasia Kazakova
C++ CoreHard Autumn 2018. Debug C++ Without Running - Anastasia Kazakova
 
C++ CoreHard Autumn 2018. Полезный constexpr - Антон Полухин
C++ CoreHard Autumn 2018. Полезный constexpr - Антон ПолухинC++ CoreHard Autumn 2018. Полезный constexpr - Антон Полухин
C++ CoreHard Autumn 2018. Полезный constexpr - Антон Полухин
 
C++ CoreHard Autumn 2018. Text Formatting For a Future Range-Based Standard L...
C++ CoreHard Autumn 2018. Text Formatting For a Future Range-Based Standard L...C++ CoreHard Autumn 2018. Text Formatting For a Future Range-Based Standard L...
C++ CoreHard Autumn 2018. Text Formatting For a Future Range-Based Standard L...
 
Исключительная модель памяти. Алексей Ткаченко ➠ CoreHard Autumn 2019
Исключительная модель памяти. Алексей Ткаченко ➠ CoreHard Autumn 2019Исключительная модель памяти. Алексей Ткаченко ➠ CoreHard Autumn 2019
Исключительная модель памяти. Алексей Ткаченко ➠ CoreHard Autumn 2019
 
Как помочь и как помешать компилятору. Андрей Олейников ➠ CoreHard Autumn 2019
Как помочь и как помешать компилятору. Андрей Олейников ➠  CoreHard Autumn 2019Как помочь и как помешать компилятору. Андрей Олейников ➠  CoreHard Autumn 2019
Как помочь и как помешать компилятору. Андрей Олейников ➠ CoreHard Autumn 2019
 
Автоматизируй это. Кирилл Тихонов ➠ CoreHard Autumn 2019
Автоматизируй это. Кирилл Тихонов ➠  CoreHard Autumn 2019Автоматизируй это. Кирилл Тихонов ➠  CoreHard Autumn 2019
Автоматизируй это. Кирилл Тихонов ➠ CoreHard Autumn 2019
 

использование систем аналитики крэшей

  • 2. 1 COREHARD // ВВЕДЕНИЕ / ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016 OOPS…
  • 3. 2 Крэш — это такое состояние программы (приложения или операционной системы), в котором дальнейшее корректное её выполнение не представляется возможным. COREHARD // ВВЕДЕНИЕ / ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016 ЧТО ТАКОЕ CRASH?
  • 5. 4 COREHARD // ОТКУДА БЕРУТСЯ КРЭШИ / ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016 ПРИЧИНЫ КРЭШЕЙ ПРИЛОЖЕНИЙ Основные причины крэшей приложений • Необработанное исключение или сигнал; • Попытка чтения (или записи) памяти по адресу, не выделенному приложению для чтения (или записи); • Переполнение стека; • Попытка выполнить инструкцию с некорректными параметрами (деление на 0, работа с невыровненной памятью на ARM, …); • Попытка выполнить некорректную инструкцию или инструкцию, не доступную в текущем режиме работы процессора; • Некорректная работа с системными функциями (передача неверных параметров, недостаточные полномочия, нехватка памяти, …), нарушение целостности системных объектов; • Вызов std::terminate или std::abort при серьезных нарушениях логики работы приложения, после которых дальнейшее его выполнение не имеет смысла.
  • 6. 5 COREHARD // ОТКУДА БЕРУТСЯ КРЭШИ / ЛАПИЦКИЙ АРТЁМ // COREHARD // 22.10.2016 КРЭШИ И ПОЛЬЗОВАТЕЛИ Для пользователя крэш – это больше чем неудобство • Внезапное завершение приводит к потере контекста работы с приложением, восстановить который может быть сложно или даже невозможно; • Крэш может привести к потере данных пользователя, перехода данных приложения в противоречивое или некорректное состояние; • Катастрофически ухудшается пользовательский опыт.
  • 7. 6 COREHARD // ОТКУДА БЕРУТСЯ КРЭШИ / ЛАПИЦКИЙ АРТЁМ // COREHARD // 22.10.2016 НЕПРИЯТНОСТИ СЛУЧАЮТСЯ Контроль качества не способен выявить все возможные проблемы • Разнообразие устройств; • Разнообразие операционных систем; • Разнообразие программного окружения; • Ошибки при разработке приложения; • Ошибки в сторонних библиотеках и системных API; • Ошибки в инструментарии разработки.
  • 9. 8 COREHARD // РАССЛЕДОВАНИЕ КРЭША / ЛАПИЦКИЙ АРТЁМ // COREHARD // 22.10.2016 РАССЛЕДОВАНИЕ ПРИЧИН КРЭША Исходные данные • Описание проблемы пользователем; • Stack trace потоков приложения в момент падения; • Дамп памяти; • Логи работы приложения / breadcrumbs; • Информация об окружении и логическом состоянии приложения.
  • 10. 9 Stack trace — это отчет о состоянии стека вызовов приложения в конкретный момент времени, представляющий из себя список активных stack frame’ов; Его анализ позволяет точно локализовать место возникновения крэша и узнать последовательность вызовов, которая к нему привела. COREHARD // РАССЛЕДОВАНИЕ КРЭША / ЛАПИЦКИЙ АРТЁМ // COREHARD // 22.10.2016 STACK TRACE
  • 11. 10 Memory dump — это содержимое памяти приложения в конкретный момент времени; Будучи загруженным в отладчике он позволяет изучить состояние программы в момент его создания (так, будто бы отладчик был вызван на точке останова). COREHARD // РАССЛЕДОВАНИЕ КРЭША / ЛАПИЦКИЙ АРТЁМ // COREHARD // 22.10.2016 MEMORY DUMP
  • 12. 11 Анализ логов поможет изучить работу упавшего приложения в течение всего времени его жизни; В отличие от других данных, логи позволяют обнаружить причину крэша даже тогда, когда момент возникновения проблемы и момент «падения» разделены во времени и не связаны цепочкой вызовов. COREHARD // РАССЛЕДОВАНИЕ КРЭША / ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016 ЛОГИ РАБОТЫ ПРИЛОЖЕНИЯ
  • 13. 12 При анализе проблемы или попытке ее воспроизвести очень полезно иметь сведения об устройстве и его компонентах, версии операционной системы и драйверов, значений системных счетчиков, состоянии дисков и оперативной памяти, статуса соединения с сетью и другой информации о состоянии среды, в которой выполнялось приложение. COREHARD // РАССЛЕДОВАНИЕ КРЭША / ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016 ИНФОРМАЦИЯ ОБ ОКРУЖЕНИИ
  • 14. 13 Системы аналитики отчетов о падении автоматизируют процесс сбора, обработки и группировки крэшей, возникающих на устройствах пользователей; Зачастую являются частью более общих решений по аналитике и дистрибуции приложений. COREHARD // РАССЛЕДОВАНИЕ КРЭША / ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016 СИСТЕМЫ АНАЛИТИКИ КРЕШЕЙ СПЕШАТ НА ПОМОЩЬ
  • 15. 14 Группировка похожих крэшей, которые вызваны одной и той же проблемой; Анализ возникающих проблем в динамике с уведомлением о статусе крэшей с наибольшим эффектом; Телеметрия и различные дополнительные метрики (сколько пользователей онлайн, количество новых пользователей, количество crash-free пользователей и т.д.); Удобная навигация по группам и отдельным отчетам, фильтрация и поиск; API для реализации своих сценариев анализа отчетов; Интеграция с популярными багтерекерами и системами управления проектами. COREHARD // РАССЛЕДОВАНИЕ КРЭША / ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016 ПОЛЕЗНЫЕ ФУНКЦИИ
  • 16. 15 COREHARD // РАССЛЕДОВАНИЕ КРЭША / ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016 СХЕМА РАБОТЫ РЕШЕНИЙ ПО ОТПРАВКЕ И АНАЛИЗУ КРЕШЕЙ Application Crash handler Crash reporter Analytics provider Crash reports Build machine Symbols Binary <crash group> 0 ntdll.dll + 0xa5c24 1 myapp.exe + 0x35bae 2 myapp.exe + 0x64370 3 myapp.exe + 0x112180 4 myapp.exe + 0x1d5c70 <crash group> 0 ntdll.dll!NtOpenFile() 1 myapp.exe!read_config() [... 2 myapp.exe!read_settings() [... 3 myapp.exe!init() [myapp.cpp:43] 4 myapp.exe!main() [myapp.cpp:12] Binary
  • 18. 17 COREHARD // АНАЛИТИКА КРЭШЕЙ ОТ ПЛАТФОРМОДЕРЖАТЕЛЕЙ / ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016 АНАЛИТИКА КРЭШЕЙ ОТ ПЛАТФОРМОДЕРЖАТЕЛЕЙ Windows Error Reporting (Watson) • Позволяет создавать отчеты о сбоях, прикреплять к ним дампы памяти и содержимое отдельных блоков памяти программы, дополнительные файлы и параметры; • Работает автоматически для всех приложений, не обрабатывающих крэши самостоятельно, отправляя базовый отчет об ошибке и минидамп; • Отчеты об ошибках приложений отправляются в службу Windows Quality Online Services, зарегистрировавшись в которой, можно получить к ним доступ.
  • 19. 18 COREHARD // АНАЛИТИКА КРЭШЕЙ ОТ ПЛАТФОРМОДЕРЖАТЕЛЕЙ / ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016 АНАЛИТИКА КРЭШЕЙ ОТ ПЛАТФОРМОДЕРЖАТЕЛЕЙ (2) Microsoft Dev Center • Предоставляет доступ к информации о сбоях приложений из Windows Store (Windows Universal Platform, Windows Phone 7/8); • Производит символизацию stack trace’ов, по которым группирует возникшие проблемы; • Стандратный обработчик крэшей для приложений из Windows Store срабатывает автоматически, отправляя отчет в Microsoft.
  • 20. 19 COREHARD // АНАЛИТИКА КРЭШЕЙ ОТ ПЛАТФОРМОДЕРЖАТЕЛЕЙ / ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016 АНАЛИТИКА КРЭШЕЙ ОТ ПЛАТФОРМОДЕРЖАТЕЛЕЙ (3) Apple Crash Report Service • Позволяет прямо из XCode просматривать отчеты о падении вашего приложения для MacOS или iOS, которые отправили пользователи; • Символизирует stack trace и группирует отчеты по ним; • Доступная информация ограничивается stack trace’ом и небольшим количеством сведений об устройствах и операционных системах, на которых произошел сбой; • Работает автоматически для приложений, не обрабатывающих крэши самостоятельно.
  • 21. 20 COREHARD // АНАЛИТИКА КРЭШЕЙ ОТ ПЛАТФОРМОДЕРЖАТЕЛЕЙ / ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016 АНАЛИТИКА КРЭШЕЙ ОТ ПЛАТФОРМОДЕРЖАТЕЛЕЙ (4) Android Market Crash Reports • Предоставляет доступ к отчетам об ошибках, которые присылают пользователи; • Обработчик крэшей вызывается для необработанных исключений управляемого кода, поэтому отчетов о крэшах в C++/NDK приложениях или библиотеках увидеть не удастся.
  • 23. 22 COREHARD // АНАЛИТИКА КРЭШЕЙ ОТ СТОРОННИХ РАЗРАБОТЧИКОВ / ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016 ПОДДЕРЖКА ПЛАТФОРМ (ПО СОСТОЯНИЮ НА ОКТЯБРЬ 2016) SDK NDK .NET Native .NET Native B B B Limited B Limited
  • 24. 23 Отправка отчетов как о крэшах, так и об обработанных исключениях; Включение в отчет пользовательской метаинформации; Breadcrumbs — последовательность значимых изменений в состоянии приложения или системы; многие события логируются автоматически. COREHARD // АНАЛИТИКА КРЭШЕЙ ОТ СТОРОННИХ РАЗРАБОТЧИКОВ / ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016 APTELIGENT
  • 25. 24 Глубокий анализ и приоритезация крэшей согласно их массовости и частоте; Интегрируется с популярными багтрекерами; В отчетах предоставляет достаточно много информации о состоянии устройства и ОС в момент падения; Позволяет создавать отчеты не только при крэше, но и для обработанных исключений; В клиентской библиотеке есть собственный логгер; полученный лог прикрепляется к отчету; Есть возможность задания пользовательских параметров, которые будут добавлены в отчет; Является также системой распространения сборок приложения. COREHARD // АНАЛИТИКА КРЭШЕЙ ОТ СТОРОННИХ РАЗРАБОТЧИКОВ / ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016 CRASHLYTICS
  • 26. 25 COREHARD // АНАЛИТИКА КРЭШЕЙ ОТ ПЛАТФОРМОДЕРЖАТЕЛЕЙ / ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016 HOCKEYAPP Поддерживает множество платформ, в т.ч. позволяет отправлять отчеты, созданные библиотекой Google Breakpad; Есть телеметрия (пользовательская активность, crash free пользователи); Позволяет прикреплять к отчетам логи, дополнительные файлы и параметры; Является также системой распространения сборок приложений; Поддерживает интеграцию с подавляющим большинством популярных багтрекеров.
  • 27. 26 Включайте в отчеты об ошибках только техническую информацию, которая необходима для последующего решения проблем. Никогда не логируйте идентификаторы, пин-коды, ключи, пароли, токены и прочую информацию, которой могут воспользоваться злоумышленники для несанкционированных действий от имени пользовтаеля или вашей системы; Уважайте приватность ваших пользователей и не включайте личную информацию (e-mail, номер телефона, списки контактов) в отчеты об ошибках. COREHARD // СОВЕТЫ / ЛАПИЦКИЙ АРТЁМ // COREHARD / 22.10.2016 ЛОГИРУЙТЕ РАЗУМНО
  • 29. ЛАПИЦКИЙ АРТЁМ Software Developer https://www.facebook.com/WargamingMinsk ANY QUESTIONS? lapitsky.artem@gmail.com wargaming.com https://www.linkedin.com/company/wargaming-net