尝试启动 Unity3D 游戏时出现 SIGSEGV

尝试启动 Unity3D 游戏时出现 SIGSEGV

这是我尝试通过 Steam 启动它时的崩溃日志,看起来与 mono 运行时有关,但我已确认我已通过官方 18.04.4 存储库安装了 mono-runtime:

Stacktrace:


Native stacktrace:

    /home/viru/.steam/steam/steamapps/common/Pillars of Eternity/PillarsOfEternity_Data/Mono/x86_64/libmono.so(+0x915de) [0x7f76711bd5de]
    /home/viru/.steam/steam/steamapps/common/Pillars of Eternity/PillarsOfEternity_Data/Mono/x86_64/libmono.so(+0x3483b) [0x7f767116083b]
    /lib/x86_64-linux-gnu/libpthread.so.0(+0x12890) [0x7f7675279890]
    /lib/x86_64-linux-gnu/libc.so.6(cfree+0x2b1) [0x7f76738eec01]
    /usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so(+0x164931f) [0x7f7668e4831f]
    /usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so(+0x181825a) [0x7f766901725a]
    /usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so(+0x164a2eb) [0x7f7668e492eb]
    /usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so(+0x164b660) [0x7f7668e4a660]
    /usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so(+0x1675dd7) [0x7f7668e74dd7]
    /usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so(+0x1676837) [0x7f7668e75837]
    /usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so(+0x1473f38) [0x7f7668c72f38]
    /usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so(+0xe3479c) [0x7f766863379c]
    /usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so(+0x159d82c) [0x7f7668d9c82c]
    /usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so(+0x10df998) [0x7f76688de998]
    /usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so(+0x149a793) [0x7f7668c99793]
    /usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so(+0x14f1fbe) [0x7f7668cf0fbe]
    /opt/amdgpu-pro/lib/x86_64-linux-gnu/libGL.so.1(+0x7b40f) [0x7f7674b4440f]
    /opt/amdgpu-pro/lib/x86_64-linux-gnu/libGL.so.1(+0x8c6b9) [0x7f7674b556b9]
    /opt/amdgpu-pro/lib/x86_64-linux-gnu/libGL.so.1(glXQueryVersion+0x20) [0x7f7674b14fa0]
    /home/viru/.steam/steam/steamapps/common/Pillars of Eternity/PillarsOfEternity() [0xc3ee64]
    /home/viru/.steam/steam/steamapps/common/Pillars of Eternity/PillarsOfEternity() [0xc3e787]
    /home/viru/.steam/steam/steamapps/common/Pillars of Eternity/PillarsOfEternity() [0x42db1b]
    /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7f7673878b97]
    /home/viru/.steam/steam/steamapps/common/Pillars of Eternity/PillarsOfEternity() [0x42f8f1]

Debug info from gdb:

ERROR: ld.so: object '/home/viru/.steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
I refuse to debug myself!
No threads.

=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.

=================================================================

当我尝试通过终端启动它时,它返回以下内容:

Set current directory to /home/viru/.steam/steam/steamapps/common/Pillars of Eternity
Found path: /home/viru/.steam/steam/steamapps/common/Pillars of Eternity/PillarsOfEternity
Mono path[0] = '/home/viru/.steam/steam/steamapps/common/Pillars of Eternity/PillarsOfEternity_Data/Managed'
Mono path[1] = '/home/viru/.steam/steam/steamapps/common/Pillars of Eternity/PillarsOfEternity_Data/Mono'
Mono config path = '/home/viru/.steam/steam/steamapps/common/Pillars of Eternity/PillarsOfEternity_Data/Mono/etc'
Aborted

答案1

在 Ubuntu 18.04 上启动另一款基于 Unitly3D 的游戏 Wasteland 2 对我来说也遇到了问题。我也有 AMD GPU。甚至崩溃的调用堆栈看起来也很相似,并且以 libmono.so 结束。我在 GOG.com 上购买了这款游戏,但在他们的网站上没有找到解决方案。

在游戏的启动脚本中进行如下设置有助于解决问题:

ulimit -n 4096

如果这没有帮助

好心人建议尝试别的办法。

打开文件数的硬限制有可能低于 4096。可以通过调用以下命令进行检查:

ulimit -Hn

如果结果低于 4096,则编辑/etc/security/limits.conf具有这样的价值观:

username soft nofile 4096
username hard nofile 8192

将“用户名”替换为您的用户名。需要重新登录系统才能使更改生效。

此描述是用户给出的提示的翻译尤格文关于俄语社区rutracker.org

相关内容