Quellcode durchsuchen

Translation(RU). Translated Debugging section (#221)

N C vor 3 Jahren
Ursprung
Commit
60ada3fc42
33 geänderte Dateien mit 462 neuen und 5 gelöschten Zeilen
  1. 92 0
      docs/ru/manuals/debugging-game-and-system-logs.md
  2. 4 4
      docs/ru/manuals/debugging-game-logic.md
  3. 83 0
      docs/ru/manuals/debugging-native-code-android.md
  4. 135 0
      docs/ru/manuals/debugging-native-code-ios.md
  5. 147 0
      docs/ru/manuals/debugging-native-code.md
  6. BIN
      docs/ru/manuals/images/extensions/cloud_build.png
  7. BIN
      docs/ru/manuals/images/extensions/cppfile.png
  8. BIN
      docs/ru/manuals/images/extensions/debugging/android/android_missing_symbols.png
  9. BIN
      docs/ru/manuals/images/extensions/debugging/android/android_profile_or_debug.png
  10. BIN
      docs/ru/manuals/images/extensions/debugging/android/android_select_apk.png
  11. BIN
      docs/ru/manuals/images/extensions/debugging/android/attach_to_process_android.png
  12. BIN
      docs/ru/manuals/images/extensions/debugging/android/breakpoint_android.png
  13. BIN
      docs/ru/manuals/images/extensions/debugging/android/bundle_android.png
  14. BIN
      docs/ru/manuals/images/extensions/debugging/android/callstack_variables_android.png
  15. BIN
      docs/ru/manuals/images/extensions/debugging/android/game_project_debuggable.png
  16. BIN
      docs/ru/manuals/images/extensions/debugging/android/path_mappings_android.png
  17. BIN
      docs/ru/manuals/images/extensions/debugging/android/path_mappings_android2.png
  18. BIN
      docs/ru/manuals/images/extensions/debugging/android/select_deployment_target.png
  19. BIN
      docs/ru/manuals/images/extensions/debugging/android/source_mappings_android.png
  20. BIN
      docs/ru/manuals/images/extensions/debugging/ios/add_dsym.png
  21. BIN
      docs/ru/manuals/images/extensions/debugging/ios/add_files.png
  22. BIN
      docs/ru/manuals/images/extensions/debugging/ios/add_source.png
  23. BIN
      docs/ru/manuals/images/extensions/debugging/ios/added_source.png
  24. BIN
      docs/ru/manuals/images/extensions/debugging/ios/attach_to_process_name.png
  25. BIN
      docs/ru/manuals/images/extensions/debugging/ios/breakpoint.png
  26. BIN
      docs/ru/manuals/images/extensions/debugging/ios/deployment_version.png
  27. BIN
      docs/ru/manuals/images/extensions/debugging/ios/disable_build.png
  28. BIN
      docs/ru/manuals/images/extensions/debugging/ios/edit_scheme.png
  29. BIN
      docs/ru/manuals/images/extensions/debugging/ios/project_template.png
  30. BIN
      docs/ru/manuals/images/extensions/debugging/ios/select_device.png
  31. BIN
      docs/ru/manuals/images/extensions/layout.png
  32. BIN
      docs/ru/manuals/images/extensions/manifest.png
  33. 1 1
      docs/ru/manuals/profiling.md

+ 92 - 0
docs/ru/manuals/debugging-game-and-system-logs.md

@@ -0,0 +1,92 @@
+---
+title: Отладка - игровые и системные логи 
+brief: В этом руководстве объясняется, как читать игровые и системные логи.
+---
+
+# Логи игры и системный лог
+
+В логе игры отображаются все результаты работы движка, нативных расширений и вашей игровой логики. Команды [print()](/ref/stable/base/#print:...)  и [pprint()](/ref/stable/builtins/?q=pprint#pprint:v) можно использовать из вашего скрипты и Lua-модулей для отображения информации в логе игры. Вы можете использовать функции из [пространства имен dmLog](/ref/stable/dmLog/) для записи в лог игры из нативных расширений. Лог игры можно прочитать из редактора, из окна терминала, с помощью специальных инструментов платформы или из файла лога.
+
+Системные логи создаются операционной системой и могут содержать дополнительную информацию, которая может помочь вам выявить проблему. Системные логи могут содержать трассировки стека для сбоев и предупреждений о нехватке памяти. 
+
+::: important
+В логе игры будет отображаться информация только в отладочных сборках. В сборках релизов лог будет полностью пустым. 
+:::
+
+## Чтение лога игры из редактора 
+
+Когда вы запускаете игру локально из редактора или подключаетесь к [мобильному приложению для разработки](/manuals/dev-app), весь вывод будет отображаться на панели консоли редактора: 
+
+![Editor 2](images/editor/editor2_overview.png)
+
+## Чтение лога игры с терминала 
+
+Когда вы запускаете игру Defold из терминала, лог будет отображаться в самом окне терминала. В Windows и Linux вы вводите имя исполняемого файла в терминале, чтобы запустить игру. В macOS вам нужно запустить движок из файла .app: 
+
+```
+$ > ./mygame.app/Contents/MacOS/mygame
+```
+
+## Чтение логов игры и системных логов с помощью инструментов, специфичных для платформы 
+
+### HTML5
+
+Логи можно читать с помощью инструментов разработчика, предоставляемых большинством браузеров. 
+
+* [Chrome](https://developers.google.com/web/tools/chrome-devtools/console) - Menu > More Tools > Developer Tools
+* [Firefox](https://developer.mozilla.org/en-US/docs/Tools/Browser_Console) - Tools > Web Developer > Web Console
+* [Edge](https://docs.microsoft.com/en-us/microsoft-edge/devtools-guide/console)
+* [Safari](https://support.apple.com/guide/safari-developer/log-messages-with-the-console-dev4e7dedc90/mac) - Develop > Show JavaScript Console
+
+### Android
+
+Вы можете использовать [Android Debug Bridge (ADB) tool](https://developer.android.com/studio/command-line/adb.html) для просмотра логов игры и системного лога. 
+
+  После установки и настройки подключите ваше устройство к USB, откройте терминал и выполните команды: 
+
+  ```txt
+  cd <path_to_android_sdk>/platform-tools/
+  adb logcat
+  ```
+
+  После чего устройство сбрасывает весь вывод в текущий терминал вместе со всеми выводами на печать из игры.
+
+  Если вы хотите видеть только выходные данные приложения Defold, используйте эту команду: 
+
+  ```txt
+  cd <path_to_android_sdk>/platform-tools/
+  adb logcat -s defold
+  ```
+
+### iOS
+
+Вы можете использовать [Console tool](https://support.apple.com/guide/console/welcome/mac) для чтения лога игры и системного лога. Вы можете использовать отладчик LLDB для подключения к игре, запущенной на устройстве. Для отладки игры она должна быть подписана с помощью «Apple Developer Provisioning Profile», в который добавлено устройство, на котором вы хотите отлаживать. Создайте бандл игры из редактора и укажите provisioning profile в диалоговом окне бандлинга (бандлинг для iOS доступен только в macOS). 
+
+  Чтобы запустить игру и подключить отладчик, вам понадобится инструмент под названием [ios-deploy](https://github.com/phonegap/ios-deploy). Установите и отлаживайте свою игру, запустив в терминале следующее: 
+
+  ```txt
+  ios-deploy --debug --bundle <path_to_game.app> # NOTE: not the .ipa file
+  ```
+
+  Данная команда установит приложение на ваше устройство, запустит его и автоматически подключит к нему отладчик LLDB. Если вы новичок в LLDB, прочтите [Начало работы с LLDB](https://developer.apple.com/library/content/documentation/IDEs/Conceptual/gdb_to_lldb_transition_guide/document/lldb-basics.html). 
+
+
+## Чтение лога игры из файла лога 
+
+Если вы включите параметр *Write Log* в "game.project", любой вывод игры будет записываться на диск в файл с именем "log.txt". Вот как можно извлечь файл, если вы запускаете игру на устройстве: 
+
+iOS
+: Подключите ваше устройство к компьютеру с установленными macOS и Xcode.
+
+   Откройте Xcode и перейдите в <kbd>Window ▸ Devices and Simulators</kbd>.
+
+   Выберите свое устройство в списке, затем выберите соответствующее приложение в списке *Installed Apps*.
+
+   Щелкните значок шестеренки под списком и выберите <kbd>Download Container...</kbd>.
+
+  ![download container](images/debugging/download_container.png){srcset="images/debugging/[email protected] 2x"}
+
+  Как только контейнер будет извлечен, он появится в приложении *Finder*. Щелкните по контейнеру правой кнопкой мыши и выберите <kbd>Show Package Content</kbd>. Найдите файл «log.txt», который должен находиться в «AppData/Documents/». 
+
+Android
+: Возможность извлечения файла "log.txt" зависит от версии ОС и производителя. Вот краткое и простое пошаговое руководство: https://stackoverflow.com/a/48077004/129360

+ 4 - 4
docs/ru/manuals/debugging-game-logic.md

@@ -87,12 +87,12 @@ Step Out
 
   Чтобы установить или убрать точку останова, кликните в колонке справа от номеров строк в редакторе кода. Также можно выбрать в меню <kbd>Edit ▸ Toggle Breakpoint</kbd>.
 
-Оценка Lua-выражений
-: При подключенном отладчике и остановленной на точке останова игре доступна среда выполнения Lua с текущим контекстом. Введите выражения Lua в нижней части консоли и нажмите <kbd>Enter</kbd> для их оценки:
+Вычисление Lua-выражений
+: При подключенном отладчике и остановленной на точке останова игре доступна среда выполнения Lua с текущим контекстом. Введите выражения Lua в нижней части консоли и нажмите <kbd>Enter</kbd> для их вычисления:
 
   ![console](images/debugging/console.png){srcset="images/debugging/[email protected] 2x"}
 
-  В настоящее время нет возможности изменять переменные через оценщик.
+  В настоящее время нет возможности изменять переменные через функцию вычисления.
 
 Отсоединение отладчика
 : Выберите <kbd>Debug ▸ Detach Debugger</kbd>, чтобы отсоединить отладчик от игры. Она немедленно продолжит работу.
@@ -101,7 +101,7 @@ Step Out
 
 Lua поставляется с библиотекой отладки, которая полезна в некоторых ситуациях, особенно если необходимо исследовать внутренности окружения Lua. За подробностями обращайтесь к веб-странице http://www.lua.org/pil/contents.html#23.
 
-## Debugging checklist
+## Чеклист для отладки
 
 Если вы столкнулись с ошибкой или если ваша игра ведет себя не так, как ожидалось, вот контрольный список для отладки:
 

+ 83 - 0
docs/ru/manuals/debugging-native-code-android.md

@@ -0,0 +1,83 @@
+---
+title: Отладка на Android
+brief: В этом руководстве описывается, как отлаживать сборку, работающую на устройстве Android.
+---
+
+# Отладка на Android
+
+Здесь мы перечислим ряд способов отладки вашего исполняемого файла, работающего на устройстве Android
+
+## Android Studio
+
+* Подготовьте бандл, установив параметр `android.debuggable` в `game.project`
+
+	![android.debuggable](images/extensions/debugging/android/game_project_debuggable.png)
+
+* Поместите бандл приложения в режиме отладки в папку по выбору.
+
+	![bundle_android](images/extensions/debugging/android/bundle_android.png)
+
+* Запустите [Android Studio](https://developer.android.com/studio/)
+
+* Выберите `Profile or debug APK`
+
+	![debug_apk](images/extensions/debugging/android/android_profile_or_debug.png)
+
+* Выберите только что созданный apk бандл
+
+	![select_apk](images/extensions/debugging/android/android_select_apk.png)
+
+* Выберите основной файл `.so` и убедитесь, что в нем есть отладочные символы 
+
+	![select_so](images/extensions/debugging/android/android_missing_symbols.png)
+
+* Если их нет в файле, загрузите не урезанный файл с отладочными символами с расширением `.so`. (размер около 20 МБ)
+
+* Сопоставления путей помогают переназначить отдельные пути, из которых был создан исполняемый файл (в облаке), в реальную папку на вашем локальном диске.
+
+* Выберите .so файл, затем добавьте сопоставление на вашем локальном диске
+
+	![path_mapping1](images/extensions/debugging/android/path_mappings_android.png)
+
+	![path_mapping2](images/extensions/debugging/android/path_mappings_android2.png)
+
+* Если у вас есть доступ к исходным кодам движка, добавьте сопоставление пути и для него
+
+		* не забудьте сверить версию, которую вы сейчас отлаживаете
+
+			defold $ git checkout 1.2.148 
+
+* Нажмите `Apply changes`
+
+* Теперь вы должны увидеть исходный код, имеющий привязки в вашем пректе. 
+
+	![source](images/extensions/debugging/android/source_mappings_android.png)
+
+* Добавить точку останова 
+
+	![breakpoint](images/extensions/debugging/android/breakpoint_android.png)
+
+* Нажмите `Run` -> `Debug "Appname"` и затем вызовите код, в который вы хотели бы вклиниться
+
+	![breakpoint](images/extensions/debugging/android/callstack_variables_android.png)
+
+* Теперь вы можете пошагово войти в стек вызовов, а также отслеживать переменные 
+
+
+## Примечани
+
+### Директория задач нативного расширения 
+
+В настоящее время рабочий процесс немного сложен для разработки. Это потому, что имя директории с задачами
+является случайным для каждой сборки, что делает сопоставление пути недействительным для каждой новой сборки.
+
+Однако он отлично работает для единичного сеанса отладки.
+
+Сопоставления путей хранятся в файле <project>.iml в проекте Android Studio.
+
+Можно получить директорию с задачами из исполняемого файла
+
+	$ arm-linux-androideabi-readelf --string-dump=.debug_str build/armv7-android/libdmengine.so | grep /job
+
+Папка задачи называется так `job1298751322870374150`, каждый раз это название с уникальным случайным номером. 
+

+ 135 - 0
docs/ru/manuals/debugging-native-code-ios.md

@@ -0,0 +1,135 @@
+---
+title: Отладка на iOS/macOS 
+brief: В этом руководстве описывается, как отлаживать сборку с помощью Xcode.
+---
+
+#  Отладка на iOS/macOS 
+
+Здесь мы описываем, как отлаживать сборку с помощью [Xcode](https://developer.apple.com/xcode/), предпочитаемой компанией Apple IDE для разработки под macOS и iOS.
+
+## Xcode
+
+* Соберите бандл приложения с помощью утилиты bob с ключом `--with-symbols` 
+
+		$ cd myproject
+		$ wget http://d.defold.com/archive/<sha1>/bob/bob.jar
+		$ java -jar bob.jar --platform armv7-darwin build --with-symbols debug --archive bundle -bo build/ios -mp <app>.mobileprovision --identity "iPhone Developer: Your Name (ID)"
+
+* Установите приложение с помощью `Xcode`,` iTunes` или [ios-deploy](https://github.com/ios-control/ios-deploy) 
+
+		$ ios-deploy -b <AppName>.ipa
+
+* Получите папку `.dSYM` (т.е. отладочные символы) 
+
+	* Если приложение не использует нативные расширения, вы можете скачать файл `.dSYM` с сайта [d.defold.com](http://d.defold.com) 
+
+	* Если вы используете нативные расширения, то папка `.dSYM` генерируется при сборке с помощью утилиты [bob.jar](https://www.defold.com/manuals/bob/). Требуется только сборка (без архивации и бандлинга): 
+
+			$ cd myproject
+			$ unzip .internal/cache/arm64-ios/build.zip
+			$ mv dmengine.dSYM <AppName>.dSYM
+			$ mv <AppName>.dSYM/Contents/Resources/DWARF/dmengine <AppName>.dSYM/Contents/Resources/DWARF/<AppName>
+
+
+### Создание проекта
+
+Для правильной отладки нам нужен проект и сопоставленный исходный код.
+Мы не используем этот проект для сборки, а только для отладки.
+
+* Создайте новый проект Xcode, выберите шаблон `Game` 
+
+	![project_template](images/extensions/debugging/ios/project_template.png)
+
+* Выберите имя (например, `debug`) и настройки по умолчанию
+
+* Выберите папку для сохранения в неё проекта
+
+* Добавьте свой код в приложение
+
+	![add_files](images/extensions/debugging/ios/add_files.png)
+
+* Убедитесь, что флажок "Copy items if needed" снят. 
+
+	![add_source](images/extensions/debugging/ios/add_source.png)
+
+* Таков конечный результат
+
+	![added_source](images/extensions/debugging/ios/added_source.png)
+
+* Отключите шаг `Build`
+
+	![edit_scheme](images/extensions/debugging/ios/edit_scheme.png)
+
+	![disable_build](images/extensions/debugging/ios/disable_build.png)
+
+* Установите версию `Deployment target`, чтобы она была больше, чем версия вашего iOS устройства.
+
+	![deployment_version](images/extensions/debugging/ios/deployment_version.png)
+
+* Выберите целевое устройство
+
+	![select_device](images/extensions/debugging/ios/select_device.png)
+
+
+### Запуск отладчика
+
+У вас есть несколько вариантов отладки приложения
+
+1. Либо выберите `Debug` -> `Attach to process...` и выберите оттуда приложение.
+
+1. Либо выберите `Attach to process by PID or Process name`.
+
+	![select_device](images/extensions/debugging/ios/attach_to_process_name.png)
+
+	1. Запустите приложение на устройстве
+
+1. В `Edit Scheme` добавьте папку <AppName>.app в качестве исполняемого файла 
+
+### Отладочные символы
+
+**Чтобы использовать lldb, выполнение должно быть приостановлено**
+
+* Добавьте путь `.dSYM` к lldb
+
+		(lldb) add-dsym <PathTo.dSYM> 
+
+	![add_dsym](images/extensions/debugging/ios/add_dsym.png)
+
+* Убедитесь, что `lldb` успешно прочитал символы
+
+		(lldb) image list <AppName>
+
+### Сопоставления путей
+
+* Добавьте исходный код движка (подправьте путь по своему усмотрению) 
+
+		(lldb) settings set target.source-map /Users/builder/ci/builds/engine-ios-64-master/build /Users/mathiaswesterdahl/work/defold
+		(lldb) settings append target.source-map /private/var/folders/m5/bcw7ykhd6vq9lwjzq1mkp8j00000gn/T/job4836347589046353012/upload/videoplayer/src /Users/mathiaswesterdahl/work/projects/extension-videoplayer-native/videoplayer/src
+
+	* Возможно получить папку с задачами из исполняемого файла.
+	Папка задачи называется так `job1298751322870374150`, каждый раз это имя со случайным номером. 
+
+			$ dsymutil -dump-debug-map <executable> 2>&1 >/dev/null | grep /job
+
+* Проверьте сопоставления исходников
+
+		(lldb) settings show target.source-map
+
+Вы можете проверить, из какого исходного файла происходит отладочный символ, используя команду
+
+	(lldb) image lookup -va <SymbolName>
+
+
+### Точки останова
+
+* Откройте файл в project view и установите точку останова 
+
+	![breakpoint](images/extensions/debugging/ios/breakpoint.png)
+
+## Примечания
+
+### Проверка UUID бинарного файла
+
+Чтобы отладчик пустил папку `.dSYM`, UUID должен совпадать с UUID отлаживаемого исполняемого файла. Вы можете проверить UUID так:
+
+	$ dwarfdump -u <PathToBinary>

+ 147 - 0
docs/ru/manuals/debugging-native-code.md

@@ -0,0 +1,147 @@
+---
+title: Отладка нативного кода в Defold
+brief: Это руководство объясняет как отлаживать нативный код в Defold. 
+---
+
+# Отладка нативного кода
+
+Defold неплохо протестирован и очень редко дает сбой при нормальных обстоятельствах. Однако невозможно гарантировать, что он никогда не выйдет из строя, особенно если ваша игра использует нативные расширения. Если вы столкнетесь с проблемами, связанными со сбоями или собственным кодом, который ведет себя не так, как ожидалось, есть несколько способов продвинуться с проблемой:
+
+* Используйте отладчик для пошагового выполнения кода
+* Используйте отладочный вывод
+* Анализируйте логи сбоев
+* Сгенерируйте отладочные символы к стеку вызовов 
+
+
+## Использование отладчика
+
+Самый распространенный способ - запустить код через отладчик. Он позволяет вам пройти по коду, установить `точки останова` (`breakpoints`) и он остановит выполнение, если вы получите сбой.
+
+Для каждой платформы существует несколько отладчиков. 
+
+* Visual studio - Windows
+* VSCode - Windows, macOS, Linux
+* Android Studio - Windows, macOS, Linux
+* Xcode - macOS
+* WinDBG - Windows
+* lldb / gdb - macOS, Linux, (Windows)
+* ios-deploy - macOS
+
+Каждый инструмент может отлаживать определенные платформы:
+
+* Visual studio - Windows + платформы с поддержкой gdbserver (например, Linux/Android)
+* VSCode - Windows, macOS (lldb), Linux (lldb/gdb) + платформы с поддержкой gdbserve
+* Xcode -  macOS, iOS ([узнать больше](/manuals/debugging-native-code-ios))
+* Android Studio - Android ([узнать больше](/manuals/debugging-native-code-android))
+* WinDBG - Windows
+* lldb/gdb - macOS, Linux, (iOS)
+* ios-deploy - iOS (via lldb)
+
+
+## Применение отладочного вывода
+
+Самый простой способ отладки нативного кода - использовать [отладочную печать](http://en.wikipedia.org/wiki/Debugging#Techniques). Используйте функции в [пространстве имен dmLog](/ref/stable/dmLog/), чтобы наблюдать за переменными или обозначать поток выполнения. Использование любой из функций логирования приведет к печати в секции *Console* в редакторе и в [лог игры](/manuals/debugging-game-and-system-logs). 
+
+
+## Анализ лога сбоя
+
+Движок Defold сохраняет файл `_crash` в случае серьезного сбоя. crash файл будет содержать информацию о системе, а также о сбое. В [выводе лога игры](/manuals/debugging-game-and-system-logs) будет записано, где находится crash файл (это зависит от операционной системы, устройства и приложения).
+
+Вы можете использовать [crash модуль](https://www.defold.com/ref/crash/), чтобы прочитать этот файл в следующей сессии. Рекомендуется прочитать файл, собрать информацию, вывести ее в консоли и отправить в [сервисы аналитики](/tags/stars/analytics/), которые поддерживают сбор crash логов. 
+
+::: important
+В Windows также создается файл `_crash.dmp`. Этот файл полезен при отладке сбоя.
+:::
+
+### Получение лога сбоев с устройства 
+
+Если сбой происходит на мобильном устройстве, вы можете загрузить crash файл на свой компьютер и проанализировать его локально. 
+
+#### Android
+
+Если приложение [в режиме отладки](/manuals/project-settings/#android), вы можете получить лог сбоев с помощью [Android Debug Bridge (ADB) tool](https://developer.android.com/studio/command-line/adb.html) и команды `adb shell`: 
+
+```
+	$ adb shell "run-as com.defold.example sh -c 'cat /data/data/com.defold.example/files/_crash'" > ./_crash
+```
+
+#### iOS
+
+В iTunes вы можете просмотреть/загрузить контейнер приложений.
+
+В окне `Xcode -> Devices` вы также можете выбрать логи сбоев. 
+
+
+## Генерация отладочных символов к стеку вызовов
+
+Если вы получили стек вызовов либо из файла `_crash`, либо из [лог файла](/manuals/debugging-game-and-system-logs), вы можете сгенерировать отладочные символы. Это означает перевод каждого адреса в стеке вызовов в имя файла и номер строки, что, в свою очередь, помогает при обнаружении основной причины падения.
+
+Очень важно, чтобы вы сопоставили правильный движок со стеком вызовов. В противном случае очень вероятно, что вы получите неверную отладку. Если вы работаете с нативными расширениями, не забудьте добавить флаг [--with-symbols](https://www.defold.com/manuals/bob/) к [утилите bob](https://www.defold.com/manuals/bob/) или установите флажок "Generate debug symbols" в диалоговом окне пакета в редакторе, чтобы получить все необходимые данные с сервера сборки: 
+
+* iOS и macOS - папка `dmengine.dSYM` в `build.zip` содержит символы отладки для сборок под iOS/macOS.
+* Android и Linux - сами исполняемые файлы содержат символы отладки.
+* Windows - файл `dmengine.pdb` в архиве ` build.zip` содержит символы отладки для сборок под Windows.
+* HTML5 - файл `dmengine.js.symbols` в архиве` build.zip` содержит символы отладки для сборок под HTML5. 
+
+Если вы делаете сборки без нативных расширений, символы отладки доступны на [веб-сайте для скачивания Defold](http://d.defold.com): 
+
+* iOS - Файлы `engine/armv7-darwin/dmengine_release.dSYM.zip` и` engine/arm64-darwin/dmengine_release.dSYM.zip` содержат символы отладки для 32- и 64-битных версий движка.
+* macOS - Файл `engine/x86_64-darwin/dmengine_release.dSYM.zip` содержит символы отладки.
+* Android - Файлы движков `engine/armv7-android/dmengine.apk` и `engine/arm64-android/dmengine.apk` включают символы отладки для 32- и 64-битных версий движка.
+* Linux - Файл движка `engine/x86_64-linux/dmengine_release` включает символы отладки.
+* Windows - Файл `engine/x86_64-win32/dmengine_release.pdb` содержит символы отладки.
+* HTML5 - Файл `engine/js-web/dmengine_release.js.symbols` содержит символы отладки. 
+
+::: important
+Очень важно, чтобы вы сохранили где-нибудь символы отладки для каждого публичного релиза вашей игры, и чтобы вы знали, к какому релизу принадлежат отладочные символы. Вы не сможете отлаживать нативные сбои, если у вас не будет отладочных символов! Кроме того, вы должны держать под рукой включающую отладочные символы версию движка. Это позволяет лучше всего отображать стек вызовов. 
+:::
+
+### Генерация отладочных символов к стеку вызовов Android
+
+1. Получите его из папки сборки
+
+	$ ls <project>/build/<platform>/[lib]dmengine[.exe|.so]
+
+1. Распакуйте архив:
+
+	$ unzip dmengine.apk -d dmengine_1_2_105
+
+1. Найдите адрес в стеке вызовов
+
+    Например, в стеке вызовов без отладочных символов это могло бы выглядеть так 
+
+	#00 pc 00257224 libmy_game_name.so
+
+	Где *00257224* это адрес
+
+1. Обработайте этот адрес командой
+
+    $ arm-linux-androideabi-addr2line -C -f -e dmengine_1_2_105/lib/armeabi-v7a/libdmengine.so _address_
+
+Примечание: Если вы получите стектрейс из [логов Android](/manuals/debugging-game-and-system-logs), вы можете снабдить его отладочными символами с помощью [ndk-stack](https://developer.android.com/ndk/guides/ndk-stack.html). 
+
+### Генерация отладочных символов к стеку вызовов iOS
+
+1. Если вы используете нативные расширения, сервер может предоставить вам символы (.dSYM) (передайте ключ `--with-symbols` в bob.jar) 
+
+	$ unzip <project>/build/arm64-darwin/build.zip
+	# it will produce a Contents/Resources/DWARF/dmengine
+
+1. Если вы не используете нативные расширения, скачайте стандартные отладочные символы: 
+
+	$ wget http://d.defold.com/archive/<sha1>/engine/arm64-darwin/dmengine.dSYM
+
+1. Получите отладочные символы, используя адрес загрузки 
+
+    По какой-то причине простое добавление адреса из стека вызовов не работает (т. е. адрес загрузки 0x0) 
+
+		$ atos -arch arm64 -o Contents/Resources/DWARF/dmengine 0x1492c4
+
+	# Также никакого результата не даст задание адреса загрузки напрямую
+
+		$ atos -arch arm64 -o MyApp.dSYM/Contents/Resources/DWARF/MyApp -l0x100000000 0x1492c4
+
+    Добавление адреса загрузки к адресу из стека вызовов даст нужный результат: 
+
+		$ atos -arch arm64 -o MyApp.dSYM/Contents/Resources/DWARF/MyApp 0x1001492c4
+		dmCrash::OnCrash(int) (in MyApp) (backtrace_execinfo.cpp:27)

BIN
docs/ru/manuals/images/extensions/cloud_build.png


BIN
docs/ru/manuals/images/extensions/cppfile.png


BIN
docs/ru/manuals/images/extensions/debugging/android/android_missing_symbols.png


BIN
docs/ru/manuals/images/extensions/debugging/android/android_profile_or_debug.png


BIN
docs/ru/manuals/images/extensions/debugging/android/android_select_apk.png


BIN
docs/ru/manuals/images/extensions/debugging/android/attach_to_process_android.png


BIN
docs/ru/manuals/images/extensions/debugging/android/breakpoint_android.png


BIN
docs/ru/manuals/images/extensions/debugging/android/bundle_android.png


BIN
docs/ru/manuals/images/extensions/debugging/android/callstack_variables_android.png


BIN
docs/ru/manuals/images/extensions/debugging/android/game_project_debuggable.png


BIN
docs/ru/manuals/images/extensions/debugging/android/path_mappings_android.png


BIN
docs/ru/manuals/images/extensions/debugging/android/path_mappings_android2.png


BIN
docs/ru/manuals/images/extensions/debugging/android/select_deployment_target.png


BIN
docs/ru/manuals/images/extensions/debugging/android/source_mappings_android.png


BIN
docs/ru/manuals/images/extensions/debugging/ios/add_dsym.png


BIN
docs/ru/manuals/images/extensions/debugging/ios/add_files.png


BIN
docs/ru/manuals/images/extensions/debugging/ios/add_source.png


BIN
docs/ru/manuals/images/extensions/debugging/ios/added_source.png


BIN
docs/ru/manuals/images/extensions/debugging/ios/attach_to_process_name.png


BIN
docs/ru/manuals/images/extensions/debugging/ios/breakpoint.png


BIN
docs/ru/manuals/images/extensions/debugging/ios/deployment_version.png


BIN
docs/ru/manuals/images/extensions/debugging/ios/disable_build.png


BIN
docs/ru/manuals/images/extensions/debugging/ios/edit_scheme.png


BIN
docs/ru/manuals/images/extensions/debugging/ios/project_template.png


BIN
docs/ru/manuals/images/extensions/debugging/ios/select_device.png


BIN
docs/ru/manuals/images/extensions/layout.png


BIN
docs/ru/manuals/images/extensions/manifest.png


+ 1 - 1
docs/ru/manuals/profiling.md

@@ -118,7 +118,7 @@ Instruments (macOS и iOS)
   ![instruments](images/profiling/instruments.png){srcset="images/profiling/[email protected] 2x"}
 
 OpenGL profiler (macOS)
-: Часть пакета "Additional Tools for Xcode", который можно загрузить из Apple (выберите <kbd>Xcode ▸ Открыть инструмент разработчика ▸ Дополнительные инструменты разработчика ...</kbd> в меню Xcode).
+: Часть пакета "Additional Tools for Xcode", который можно загрузить из Apple (выберите <kbd>Xcode ▸ Open Developer Tool ▸ More Developer Tools...</kbd> в меню Xcode).
 
    Этот инструмент позволяет вам анализировать работающее Defold приложение и увидеть, как оно использует OpenGL. Он позволяет вам отслеживать вызовы функций OpenGL, устанавливать точки останова для функций OpenGL, исследовать ресурсы приложения (текстуры, программы, шейдеры и т. д.), просматривать содержимое буфера и проверять другие аспекты состояния OpenGL.