Вопрос или проблема
Я скачал игру. У нее есть проблема: она просто не запускается, и каждый раз при запуске я вижу белый экран.
Я сделал немного магии с командной строкой, узнал, что игре не хватает нескольких библиотек, установил их. Игра все равно не работает, насколько я смог выяснить, у нее проблемы с загрузкой libsteam_api.so
, на что я тоже не могу найти решения. У игры есть несколько скриптов запуска, и при запуске с одним из них создается файл .dmp
, команда file
показывает тип файла как: Мини дамп отчета об аварии
.
* нашел старую дискуссию на Steam, в которой предполагалось, что моя видеокарта просто недостаточно быстрая, но я все равно собираюсь попытаться это исправить.
cargo install minidump-stackwalk
minidump-stackwalk /home/dev/.local/share/feral-interactive/AlienIsolation/crashes/565dabb2-f810-712b-0ae6b3e7-76c9445e.dmp
И чудесным образом, запустив другие приложения, я нашел что-то, что тоже сработало здесь. =-O >.< 😎
Xephyr :99 -resizeable -screen 1280x720 &
LD_LIBRARY_PATH=./lib/x86_64 DISPLAY=:99 ./bin/AlienIsolation
Сегфолт
LD_LIBRARY_PATH=./lib/x86_64 ./bin/AlienIsolation
Это не имело ничего общего с файлом дампа, который не дал мне ничего. Кроме указания на то, что я, возможно, уничтожил PulseAudio во время устранения неполадок.
0x7f34fc77d000 - 0x7f350c77cfff memfd:pulseaudio (удалено) ???
Не знаю, что это значит. Но у меня нет звука. Хотя он работает в cvlc… Буду разбираться.
Остальное было.
Причина сбоя: SIGSEGV
Адрес сбоя: 0x000000000000d801 **
** Обнаружен нулевой указатель с смещением: 0x000000000000d801
Инструкция, вызвавшая сбой: `cmp byte [rbp + 0xd801], 0x0`
Память, доступная инструкцией:
0. Адрес: 0x000000000000d801
Размер: 1
Время работы процесса: недоступно
Поток 0 (сбой)
0 AlienIsolation + 0x65042b
rax = 0x00007f350d11df60 rdx = 0x0000000000000001
rcx = 0x0000000000000000 rbx = 0x0000000000001f01
rsi = 0
Это всегда хорошо знать. Если я не использую Xephyr, что бы это ни было, он обращается к указателю нуля! Вызывая объект, который не существует. Сбивается каждый раз.
Ответ или решение
Открытие файла .dmp (Mini DuMP отчет о сбое)
Здравствуйте!
Судя по вашему описанию, проблема с запуском игры связана с отсутствием некоторых библиотек, а также с возможной ошибкой программирования, которая приводит к сбою (segfault) из-за обращения к нулевому указателю.
Шаги для анализа .dmp файла
-
Установка инструментов для анализа: Вы уже установили
minidump-stackwalk
, что является хорошим началом. Этот инструмент позволит вам получить стек вызовов, который может помочь в диагностике проблемы.cargo install minidump-stackwalk
-
Анализ файла Mini DuMP: Используйте
minidump-stackwalk
для анализа вашего файла .dmp. Это даст вам больше информации о причинах сбоя.minidump-stackwalk /home/dev/.local/share/feral-interactive/AlienIsolation/crashes/565dabb2-f810-712b-0ae6b3e7-76c9445e.dmp
Вы получите стек вызовов и другую информацию об ошибках, которая может помочь в идентификации проблемы.
Ошибки и решения
-
В вашем анализе видно, что ошибка связана с нулевым указателем (
SIGSEGV
), что означает, что программа пытается обратиться к области памяти, которая не существует или не выделена. -
Конкретная ошибка
cmp byte [rbp + 0xd801], 0x0
говорит о том, что вызывается объект, который равен нулю. Это указывает на ошибку в программном коде, скорее всего, в части игры, отвечающей за инициализацию объекта.
Возможные решения
-
Проверка обновлений: Убедитесь, что у вас установлены последние обновления игры. Разработчики часто выпускают патчи для устранения ошибок.
-
Совместимость библиотек: Проверьте, что у вас установлены все необходимые библиотеки (например,
libsteam_api.so
). Вы можете попытаться установить их с помощью менеджера пакетов вашего дистрибутива Linux.sudo apt-get install <имя_библиотеки>
-
Работа с графический драйверами: Возможно, проблема связана с вашим графическим драйвером. Убедитесь, что у вас установлен последний доступный драйвер для вашей видеокарты, который поддерживает игру.
-
Использование Xephyr: Если вы уже использовали Xephyr, это хороший способ изолировать окно приложения, но убедитесь, что вы правильно настраиваете переменные окружения, как это показано в вашем примере.
Xephyr :99 -resizeable -screen 1280x720 & LD_LIBRARY_PATH=./lib/x86_64 DISPLAY=:99 ./bin/AlienIsolation
Проблемы с аудио
По поводу проблемы с отсутствием звука: ваше сообщение о том, что вы, возможно, "разрушили" Pulseaudio, может указывать на конфликт в системе звука. Попробуйте перезапустить Pulseaudio:
pulseaudio -k
pulseaudio --start
Также убедитесь, что ваша игра использует правильное устройство вывода звука, что можно проверить в pavucontrol
(если установлен).
Заключение
В целом, основная проблема заключается в том, что игра пытается обратиться к недоступному объекту в памяти, что приводит к краху. Ваша задача — выявить и устранить эту причину. Если предложенные шаги не решат проблему, возможно, стоит обратиться за поддержкой к разработчику игры или на форумы сообщества.
Удачи!