shkhln / linuxulator-steam-utils

Steam launcher for FreeBSD
MIT License
128 stars 12 forks source link

Update for wiki: "Portal 2" - ID 620 - not ok #16

Closed netchild closed 4 years ago

netchild commented 4 years ago

valve head shows, audio repeats itself (1-2 in a loop), crashes after first portal 2 picture shows up before any menu is available

shkhln commented 4 years ago

That shouldn't happen. Anything on terminal?

netchild commented 4 years ago

Console log attached: steam.log.gz

In the game folder there is a SDLAudioDev2.core which was generated by "steamapps/common/Portal 2/portal2_linux", but lldb can't handle it.

shkhln commented 4 years ago

Hmm… Looks like <...>/steamapps/common/Portal 2/bin/libSDL2-2.0.so.0 is incompatible with, well… something. You can safely delete it.

In the game folder there is a SDLAudioDev2.core which was generated by "steamapps/common/Portal 2/portal2_linux", but lldb can't handle it.

FYI, it's enough to make a copy of a Linux executable and overwrite "GNU" strings following "/lib/ld-linux.so.2" in a hex editor. That makes lldb think it's a native executable which also makes it happy with those core files.

shkhln commented 4 years ago

Also, quitting game crashes Steam if overlay is enabled. (Same problem as with Borderlands 2.) I wonder if that's still an issue on CURRENT.

netchild commented 4 years ago

Well, I used sed to replace all GNU with spaces... but the backtrace is not really helpful:

# lldb --core SDLAudioDev2.core portal2_linux_
(lldb) target create "portal2_linux_" --core "SDLAudioDev2.core"
Core file '/home/steam/.steam/steam/steamapps/common/Portal 2/SDLAudioDev2.core' (i386) was loaded.
(lldb) bt all
* thread #1, name = 'portal2_linux', stop reason = signal SIGSEGV
  * frame #0: 0x280d8488 libtcmalloc_minimal.so.4
    frame #1: 0x2b3bce49 libGLX_nvidia.so.0
  thread #2, name = 'portal2_linux', stop reason = signal SIGSEGV
    frame #0: 0xffffe350 [vdso]`linux32_vsyscall
    frame #1: 0x28446bb4 libpthread.so.0
  thread #3, name = 'portal2_linux', stop reason = signal SIGSEGV
    frame #0: 0xffffe350 [vdso]`linux32_vsyscall
    frame #1: 0x28446bb4 libpthread.so.0
  thread #4, name = 'portal2_linux', stop reason = signal SIGSEGV
    frame #0: 0xffffe350 [vdso]`linux32_vsyscall
    frame #1: 0x28446bb4 libpthread.so.0
    frame #2: 0x2df5afa0 engine.so
  thread #5, name = 'portal2_linux', stop reason = signal SIGSEGV
    frame #0: 0xffffe350 [vdso]`linux32_vsyscall
    frame #1: 0x28446bb4 libpthread.so.0
  thread #6, name = 'portal2_linux', stop reason = signal SIGSEGV
    frame #0: 0xffffe350 [vdso]`linux32_vsyscall
    frame #1: 0x28446bb4 libpthread.so.0
  thread #7, name = 'portal2_linux', stop reason = signal SIGSEGV
    frame #0: 0xffffe350 [vdso]`linux32_vsyscall
    frame #1: 0x28446bb4 libpthread.so.0
  thread #8, name = 'portal2_linux', stop reason = signal SIGSEGV
    frame #0: 0xffffe350 [vdso]`linux32_vsyscall
    frame #1: 0x28446bb4 libpthread.so.0
  thread #9, name = 'portal2_linux', stop reason = signal SIGSEGV
    frame #0: 0xffffe350 [vdso]`linux32_vsyscall
    frame #1: 0x28446bb4 libpthread.so.0
    frame #2: 0x29d86ae8 filesystem_stdio.so
  thread #10, name = 'portal2_linux', stop reason = signal SIGSEGV
    frame #0: 0xffffe350 [vdso]`linux32_vsyscall
    frame #1: 0x28446bb4 libpthread.so.0
  thread #11, name = 'portal2_linux', stop reason = signal SIGSEGV
    frame #0: 0xffffe350 [vdso]`linux32_vsyscall
    frame #1: 0x28446bb4 libpthread.so.0
  thread #12, name = 'portal2_linux', stop reason = signal SIGSEGV
    frame #0: 0xffffe350 [vdso]`linux32_vsyscall
    frame #1: 0x28446bb4 libpthread.so.0
    frame #2: 0x2df4e098 engine.so
  thread #13, name = 'portal2_linux', stop reason = signal SIGSEGV
    frame #0: 0xffffe350 [vdso]`linux32_vsyscall
    frame #1: 0x28446bb4 libpthread.so.0
  thread #14, name = 'portal2_linux', stop reason = signal SIGSEGV
    frame #0: 0xffffe350 [vdso]`linux32_vsyscall
    frame #1: 0x28446bb4 libpthread.so.0
  thread #15, name = 'portal2_linux', stop reason = signal SIGSEGV
    frame #0: 0xffffe350 [vdso]`linux32_vsyscall
    frame #1: 0x28446bb4 libpthread.so.0
  thread #16, name = 'portal2_linux', stop reason = signal SIGSEGV
    frame #0: 0xffffe350 [vdso]`linux32_vsyscall
    frame #1: 0x28446bb4 libpthread.so.0
    frame #2: 0x29d82498 filesystem_stdio.so
  thread #17, name = 'portal2_linux', stop reason = signal SIGSEGV
    frame #0: 0xffffe350 [vdso]`linux32_vsyscall
    frame #1: 0x28446bb4 libpthread.so.0
    frame #2: 0x29d847c0 filesystem_stdio.so
  thread #18, name = 'portal2_linux', stop reason = signal SIGSEGV
    frame #0: 0xffffe350 [vdso]`linux32_vsyscall
    frame #1: 0x28448b3c libpthread.so.0
  thread #19, name = 'portal2_linux', stop reason = signal SIGSEGV
    frame #0: 0x29c0d41a libSDL2-2.0.so.0`___lldb_unnamed_symbol26$$libSDL2-2.0.so.0 + 393
    frame #1: 0x29c5abf0 libSDL2-2.0.so.0`___lldb_unnamed_symbol628$$libSDL2-2.0.so.0 + 84
    frame #2: 0x29ca82e7 libSDL2-2.0.so.0`___lldb_unnamed_symbol1251$$libSDL2-2.0.so.0 + 27
    frame #3: 0x28442bbc libpthread.so.0
netchild commented 4 years ago

I have updated to current as of r362771 (with a local patch for the linuxulator, clock related, no idea if this is important for portal 2 or not). It works after renaming libSDL2-2.0.so.0. I played a few minutes the first part of the game.

shkhln commented 4 years ago

We have enough information now, I think.

but the backtrace is not really helpful

Indeed it isn't. This was just a general debugging tip.