Логирование стека
Unity Сообщения консоли и файлы журнала могут содержать подробную информацию о трассировке стека. Консоль также содержит ссылку на строку кода, которая генерировала сообщение. Это полезно, когда требуется определить строку, метод или последовательность вызовов функций, которые вызвали появление записи журнала.
Совет: Еще один способ проверки вашего кода — это подключение отладчика к Редактору или вашему встроенному проигрывателю.
Трассировка стека для управляемого и неуправляемого кода
Unity может предоставить информацию о трассировке стека как для управляемого, так и для неуправляемого кода:
Управляемый код: Управляемые скрипты DLLs или C#, запущенные в Unity. Это могут быть скрипты, поставляемые с Unity, пользовательские скрипты, написанные пользователем, сторонние скрипты, включенные в модуль хранилища ассетов, или любой другой скрипт C#, запущенный в движке.
Неуправляемый код: Коренной код движка Unity или код из коренного плагина, работающего непосредственно на вашей машине или на целевой платформе сборки. Неуправляемый код обычно компилируется из кода C или C++. Вы можете получить к нему доступ только в том случае, если у вас есть оригинальный исходный код коренного двоичного файла. Обычно вы будете использовать стековый трек для неуправляемого кода только в том случае, если вам нужно определить, вызвана ли ошибка вашим кодом или кодом движка, и какая часть кода двигателя.
Unity предлагает три варианта трассировки стека:
- Нет: Unity не выводит информацию о трассировке стека.
- ScriptOnly: Unity выводит информацию о трассировке стека только для управляемого кода. Это параметр по умолчанию.
- Full: Unity выводит информацию о трассировке стека как для управляемого, так и для неуправляемого кода.
Вы можете установить каждый из этих параметров трассировки стек независимо для каждого тип сообщения журнала: Ошибка, Утверждение, Предупреждение, Журнал и Исключение.
Потребности в ресурсах для отслеживания стека
Разрешение трассировки стека, особенно полной трассировки стека, является ресурсоемкой операцией. Ниже приведены некоторые рекомендованные методы для трассировки стека.
- Используйте трассировку стека только для отладки. Не развертывайте приложение для пользователей, у которых включена трассировка стека.
- Ограничьте типы сообщений, отображающих трассировку стека. Например, следует использовать трассировку стека только для исключений и предупреждений.
Установка типа трассировки стека
Параметр трассировки стека можно настроить следующим образом:
- Из Окно консоли меню:
- Чтобы выбрать параметр трассировки стека для всех типов сообщений журнала, перейдите в Журналирование трассировки стека > Все и выберите параметр трассировки стека для всех типов сообщений журнала.
- Чтобы выбрать параметр трассировки стека для одного типа сообщения журнала, перейдите в Журналирование трассировки стека > [MESSAGE TYPE] и выберите параметр трассировки стека для данного типа сообщения журнала.
- Из Окно настроек игрока:
- Перейдите в Изменить > Project Настройки > Игрок > Другие настройки.
- В разделе Trace Stackиспользуйте флажки для установки параметра стека для различных типов сообщений журнала.
- Из кода, используя метод
Application.SetStackTraceLogType.
Примечание: Изменения в параметрах стека отслеживания вступают в силу немедленно в Редакторе, но вы должны перестроить приложение для того, чтобы изменения вступили в силу в встроенном Проигрывателе.
Файлы с открытым исходным кодом из вывода трассировки стека
Полный текст сообщения содержит ссылки на конкретные строки в файлах кода со ссылками. Нажмите на любую ссылку, чтобы открыть файл в вашем IDE в строке со ссылкой.
Найти файл журнала вывода компилированного приложения
Созданные приложения не выводят данные в Консоль. Чтобы увидеть трассировку стека, использует файл журнала приложения.