Project

General

Profile

РАЗДЕЛ 3
Отправка необходимой информации разработчикам

[самый важный раздел]

3.1 Ресурсы для передачи необходимой информации

Для выявления причины возникновения баги разработчикам продукта необходимо вспомогательная информация, которую исключительно необходимо загружать на один из следующих каналов:
  • через форумный модуль вложения (в частности, скриншоты: снимки окон и/или уведомлений);
  • скринхостинг qaInfo.Img;
  • файловое хранилище ownCloud; рекомендуется

i | По вопросам, связанных с файловым хранилищем qaInfo.Cloud (в частности, проблемы с доступом), обращайтесь через личное сообщение к Ilya Zadonsky (в теме письма укажите имя подпроекта qaInfo.Cloud).

  • корпоративный ftp-сервер «data8» ftp://data8.kaspersky-labs.com.

i | По вопросам, связанным с ftp-сервером data8 (создание аккаунта, проблемы с доступом), обращайтесь лично через личное сообщение к Stepan Korchagin (в теме письма укажите ftp.data8).

Остальные каналы передачи (в частности, Яндекс.Диск, Облако@Mail.Ru, Google Диск, OneDrive, DropBox и т. п.) используйте только по согласованию с сотрудниками «Лаборатории Касперского».

! | С декабря 2014 года «Лабораторией Касперского» было принято решение о закрытии доступа из внутри компании ко всем внешним ресурсам. Всю сопутствующую информацию необходимо загружать на озвученные выше каналы для передачи информации. Ограничения по доступу распространяется не только к внешним файлообменникам, но и к хостингам изображений.

3.2 Отчёт утилиты GetSystemInfo

Утилита GetSystemInfo (GSI) — специальная утилита, которая собирает информацию о системе, установленных драйверах и приложениях, запущенных процессах и т. п. В основном достаточно стандартного отчёта утилиты, о том как его получить — прочтите в этой статье.

Утилиту GSI необходимо запускать из-под учётной записи с правами администратора. Перед запуском утилиты отключите самозащиту продукта, после получения отчёта вновь включите её. Полученный файл отчёта, например, прикрепите его к вашему сообщению на форуме.

3.3 Журнал работы установщика Windows

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

После установки продукта в папке хранения временных файлов учётной записи локального пользователя %Temp% должны быть:
  • несколько файлов логов установки клиентской части «Microsoft .NET Framework» (если не установлено в системе);
  • логов установки продукта вида: kl-install-*.log.enc1, kl-setup-*.log.enc1, kl-preinstall-*.log.enc1 (где * — любые значения имени файлов в виде даты с временем гггг-мм-дд чч-мм-сс).

После удаления продукта в папке хранения временных файлов %Temp% будет файл MSI?????.LOG, где * — любой символ.

i | По умолчанию продукт может быть настроен на автоматическое получение логов в зашифрованном виде. В пункте 5.4 представлена информацию про отключение шифрования данных файлов.

Полученный файл, например, прикрепите его к вашему сообщению на форуме.

3.4 Трассировки компонентов продукта

Для диагностирования неполадок, которые связаны с работой продукта или его отдельным компонентом, необходим журнал работы компонентов продукта — трассировки (или «трейсы»). В данном журнале ведётся запись всех действий компонентов и их дополнений.

i | Длительное использование продукта с ведением трассировок приводит к созданию файлов довольно большого объёма, поэтому при ненадобности стоит отключать ведение журнал работы компонентов продукта дабы не исчерпать свободное место на системном диске.
! | Обычно, на начальных версиях бета-продукта разработчики включают автоматическое ведение трассировок и использование AppVf, что может значительно повлиять на производительность работы продукта и операционной системы.

3.4.1 Простой способ получение трассировок

В основном достаточно создавать трассировки рекомендуемого уровня, о том как их получить — прочтите в этой статье. В папке "%AllUsersProfile%\Application Data\Kaspersky Lab" (ОС Windows XP) или "%ProgramData%\Kaspersky Lab" (ОС Windows Vista и выше) сможете обнаружить вида: KAV.*.SRV.log.enc1 (процессов сервисной части), KAV.*.GUI.log.enc1 (процессов графической части), KAV.*.HST.log.enc1 (процесса обновления баз) и т. п.

i | По умолчанию продукт может быть настроен на автоматическое получение логов в зашифрованном виде. В пункте 5.4 представлена информацию про отключение шифрования данных файлов.
! | Запись трассировок необходимо включать перед воспроизведением проблемы, т. е. включаем трассы -> воспроизводим проблему -> выключаем трассы -> забираем. Если у вас трассировки включены очень длительное время, то также в своём баг-репорте необходимо указывать время воспроизведение проблемы.

Получившиеся файлы трассировок, заархивируйте их в ZIP- или RAR-архив и выгрузите на один из рекомендуемых файлообменников.

Для выявления некоторых ошибок необходимы трассировки более высокого уровня. Через интерфейс продукта доступны следующие виды трассировок:
  • «Ошибки» (уровень трасс 300): сообщения о всех ошибках, а также набор сообщений с предупреждениями;
  • «Важные» (уровень трасс 350): все предупреждения и сообщения об обычных и неустранимых ошибках, а также набор сообщений с дополнительной информацией;
  • «Рекомендуемые» (уровень трасс 500): все предупреждения и сообщения об обычных и неустранимых ошибках, а также сообщения с подробной информацией и работе в нормальном режиме; [это значение используется по умолчанию]
  • «Все» (уровень трасс 700): все возможные сообщения.

3.4.2 Альтернативные способы получения трассировок

Если вам необходимо снять трассы, но у вас нет возможности их включить через графическую оболочку, то можно включить их запись:
  • через командную строку:
    cd "%ProgramFiles%\Kaspersky Lab\Kaspersky Internet Security 15.0.2" 
    avp.com traces on
    
    или
    cd "%ProgramFiles(x86)%\Kaspersky Lab\Kaspersky Internet Security 15.0.2" 
    avp.com traces on
    

где "%ProgramFiles%\Kaspersky Lab\Kaspersky Internet Security 15.0.2" и "%ProgramFiles(x86)%\Kaspersky Lab\Kaspersky Internet Security 15.0.2" — установочные папки продукта в 32- и 64-разрядных системах Windows; avp.com traces on — команда для включения трассировок (если вместо «on» использовать «off» — запись трассировок отключается);

  • путём внесения изменений через реестре при загрузки Windows в «безопасном» режиме: достаточно изменить значение параметра TraceFileEnable (для некоторых сценариях по просьбе сотрудника — TraceDebugEnable и/или TraceMemoryEnable) с 0 на 1 в разделах:
    • для продуктов линейки 2014 и ранее — к ветке HKEY_LOCAL_MACHINE\SOFTWARE\KasperskyLab\protected\AVPxx\Trace\Default (где xx — двухзначный номер версии линейки);
    • для продуктов линейки 2015 и выше — к ветке HKEY_LOCAL_MACHINE\SOFTWARE\KasperskyLab\AVPxx.0.y\Trace\Default (где y — номер выпуска MR).

i | Для 64-разрядных ОС необходимо переходить к разделам HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\KasperskyLab\protected\AVPхх\environment и HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\KasperskyLab\AVPxx.0.y\environment соответственно.

3.5 Дампы памяти продукта

Для диагностики падения или зависания продукта требуется полный дамп памяти продукта KFA/KAV/KIS/KTS/KSOS — файл, куда записывается вся информация о состоянии продукта на момент падения.

3.5.1 Автоматическое получение дампа (при падении)

При возникновении в коде ядра продукта неустранимой ошибки возникает падение продукта. В момент падения дампы памяти продукта (файлы вида KAV.*.dmp.enc1) в папке "%AllUsersProfile%\Application Data\Kaspersky Lab" (ОС Windows XP) или "%ProgramData%\Kaspersky Lab" (ОС Windows Vista и выше) будут созданы автоматически, а в области уведомления ОС Microsoft Windows отобразится сообщение об отключенном состоянии антивирусной защиты.

i | По умолчанию продукт может быть настроен на автоматическое получение логов в зашифрованном виде. В пункте 5.4 представлена информацию про отключение шифрования данных файлов.

При перезапуске продукта (в том числе после перезагрузки ОС) отобразится предложение отправки этих дампов в компанию для автоматического анализа.

i | Соглашаться на отправку этих файлов стоит в том случае, если вам не известна причина действий, которые привели к данному падению. В противном случае необходимо о падении сообщить в соответствующей ветке и привести ссылку на дампы.

Получившиеся файлы дампов, заархивируйте их в ZIP- или RAR-архив и выгрузите на один из рекомендуемых файлообменников.

! | При архивации архив формата RAR5 необходимо сообщать об этом в своём сообщении.

Также при возникновении падения продукта Вы можете получить дампы памяти с помощью программы «Dr. Watson» или другим отладчиком, например, с помощью пакета программ «Debugging Tools for Windows».

3.5.2 Ручное получение дампа (при зависании)

При наблюдении зависания продукта (KFA/KAV/KIS/KTS/KSOS перестаёт реагировать на действия пользователя) необходимо вручную получить дамп памяти процессов avp.exe и avpui.exe с помощью:

i | Перед ручным получением дампа необходимо в настройках установленного продукта выключить самозащиту.

Также в ходе тестирования программных модулей продукта релизной сборки можно использовать:

3.6 Дампы памяти ОС Microsoft Windows

Вся информация о содержимом оперативной памяти и состоянии системы на момент падения записывается в дампе памяти. Для диагностики падения или зависании системы Windows разработчикам требуется её полный дамп памяти.

! | Перед получением дампов памяти обязательно внесите настройки в ОС:

— на получение полного дампа памяти;
— включите использование файла подкачки (SWAP);
— размер файла подкачки должен быть не меньше объёма оперативной памяти, иначе дамп будет «обрезан» (в системах с количеством памяти больше 2 ГБ необходимо включить ограничение на количество используемой RAM-памяти).

3.6.1 Автоматическое получение дампа (при падении)

Получение дампа при падении ОС:

3.6.2 Ручное получение дампа (при зависании)

Получение дампа при зависании ОС:

В таком случае «синий экран смерти» (BSOD) при ручном вызове (через правый Ctrl + двойном нажатии ScrollLock) будет иметь следующий вид:

Также для вызова «экрана смерти» по требованию можно использовать утилиту StartBlueScree. После настройки ОС на получение полного дампа памяти, утилиту необходимо запустить от имени администратора и с параметрами (например, в командной строке):

«расположение установки»/StartBlueScreen.exe 0 0 0 0 0

где «расположение установки» — путь размещения объекта (если в данном пути присутствует хотя бы один пробел, то необходимо полный путь брать в "прямые" кавычки); 0 0 0 0 0 — параметр командной строки, нужный для предотвращения случайного запуска утилиты. Вместо нулей цифры могут быть любыми (например, 0x10 0x1111 0x2222 0x3333 0x4444 или 25 30 1234 1111 2222, или 0x12 0 0 0 0), именно они будут показаны на вызванном BSOD в качестве кода ошибки.

3.7 Снимок экрана

Для получения копии экрана (скриншот), например, с изображением сообщения об ошибке, можно использовать:

3.8 Логи работы компонентов и задач

Файл логов задач содержит в себе сохранённые из подробного отчёта события, которые происходили в ходе работы компонентов защиты или выполнения задач программы.

Для получения данного файла необходимо перейти к подробным отчётам и сохранить за необходимый промежуток времени события по интересующему компоненту защиты или выполненной задач. Как это сделать описано в этой статье.

i | В некоторых моментах может потребоваться включение в отчёты запись некритических событий компонентов программы, событиях реестра и файловой системы. О том как включить эту функцию Вы можете ознакомится в этой статье.
! | Старайтесь использовать эту функцию при необходимости, поскольку она может повлиять на производительность работы продукта и/или ОС.

3.9 Логи для исследования проблем с производительностью работы продукта

Для исследования проблем с производительностью (performance) работы установленного продукта необходимо собрать трассировки с помощью сторонней утилиты XPerf.

Сбор трассировок осуществляется с выполнение одной из двух командных файлов в зависимости от того, насколько легко воспроизвести требуемую проблему:
  • стабильное воспроизведение — trace.cmd
    xperf -on base+cswitch+compact_cswitch+dispatcher+fileio -stackwalk profile+cswitch+readythread -buffersize 1024
    pause
    xperf -d trace.etl
    
  • нестабильное воспроизведение в произвольные моменты времени — trace_circular.cmd
    xperf -on base+cswitch+compact_cswitch+dispatcher+fileio -stackwalk profile+cswitch+readythread -buffersize 1024 -filemode circular -maxfile 2048
    pause
    xperf -d trace.etl
    

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

В текущей папке полученный XPerf-лог, т. е. файл trace.etl (файлы kernel.etl и user.etl не нужны), с трассировками продукта выложить для передачи разработчикам.

i | Также указанные файлы могут создаться в папке %WinDir%\system32.