Immediate Segfault [Linux x86]


#1

I just bought GSB through HB#4. version.txt reads “1:56:0”

I’m running Ubuntu 10.04 LTS, x86 arch.

When I run “./GSB.bin.x86” the screen goes black for about 0.5 sec; the program then halts reading “Segmentation Fault.” No other output is received.

Running “ld GSB.bin.x86”, I get the following output:

ld: error in GSB.bin.x86(.eh_frame); no .eh_frame_hdr table will be created. ld: warning: cannot find entry symbol _start; defaulting to 000000000810c630

I’m not sure where errors are being logged to in Linux; if someone could let me know, I can look into those. Also let me know if there is any other information I should provide.


#2

I have the same issue. Also Ubuntu 10.04 LTS, x86 arch.


#3

Same issue here. Again Ubuntu 10.04 LTS, x86. ATI Radeon 5700 with Catalyst drivers, on a 3 GHz Core Duo PC.

In my case gdb reports the following:

Program received signal SIGSEGV, Segmentation fault. 0x0838dc5d in D3DXCreateTextureFromFileEx(IDirect3DDevice9*, char const*, unsigned int, unsigned int, unsigned int, unsigned int, _D3DFORMAT, _D3DPOOL, unsigned int, unsigned int, unsigned int, void*, void*, IDirect3DTexture9**) ()

Is there some kind of log somewhere to give you additional info?


#4

Seems pretty odd that the Linux version is messing with DirectX stuff.


#5

Works fine here, but I’m using Ubuntu 11.10 64-bit


#6

I’m having the same issue with Ubuntu 10.04 LTS x86, Humble Bundle #4, GSB version “1:56:0”. A quick run in gdb yields:

Program received signal SIGSEGV, Segmentation fault.
0x0838dc5d in D3DXCreateTextureFromFileEx(IDirect3DDevice9*, char const*, unsigned int, unsigned int, unsigned int, unsigned int, _D3DFORMAT, _D3DPOOL, unsigned int, unsigned int, unsigned int, void*, void*, IDirect3DTexture9**) ()

#0  0x0838dc5d in D3DXCreateTextureFromFileEx(IDirect3DDevice9*, char const*, unsigned int, unsigned int, unsigned int, unsigned int, _D3DFORMAT, _D3DPOOL, unsigned int, unsigned int, unsigned int, void*, void*, IDirect3DTexture9**) ()
#1  0x08111a87 in D3DEngine::CreateTexture(char*, char*) ()
#2  0x08111f57 in D3DEngine::FindTexture(char*, char*, bool) ()
#3  0x0811224a in D3DEngine::CreateTextureOnDemand(char*) ()
#4  0x081125a5 in D3DEngine::GetTexture(char*) ()
#5  0x08115009 in LibFont::Initialise(char*, char*, int, int, int, int) ()
#6  0x081152b0 in LibTextEngine::AddFont(char*, char*, int, int, int, int) ()
#7  0x0825614d in Game::InitText() ()
#8  0x082585b8 in Game::InitApp() ()
#9  0x082e23a5 in WinMain(void*, void*, char*, int) ()
#10 0x08385e5a in main ()

#7

Well, I guess it is not REALLY using DirectX :slight_smile:

I found out what’s the reason for SEGFAULT: I was missing libpng3 runtime (looks like it’s not installed by default on my Ubuntu)

@esv, questor and RS14:
just go to Applications->Ubuntu Software Center and install “PNG library - runtime”

After that I don’t get the crash anymore, but looks like the games is freezing on the load screen… will keep on debugging…


#8

I installed libpng3, but it doesn’t seem to change anything at all.

I do have libpng12-0 already installed. Would that potentially cause conflicts?


#9

I too had libpng12-0 installed, I just added libpng3 and now I have them both. It should not create conflicts because the library names should hopefully be different…


#10

Getting the same errors as everyone else, and with the pnglib3 library installed.

Also: Quite annoyed.


#11

I got around the segfault on Ubuntu Lucid by moving libSDL_image-1.2.so.0 out of the ‘lib’ directory. The game still hangs on the opening screen though…


#12

In my case, the opening screen hangs while playing back the main title theme - it looks like it keeps reading from disk the initial 13 bytes of the OGG file, don’t ask me why.

By renaming the file data/sounds/music/main_title.ogg to something else, I got an OPENAL error window saying that it couldn’t open a stream to it, and then the main menu appeared!

Now the only problem is that I got a SEGFAULT by clicking on ANY button of the menu - even the Exit one :slight_smile:

I guess GSB hasn’t received enough tests under Ubuntu 10.04 yet…

EDIT: it’s actually reading the OGG file 13 bytes at a time, not looping on the first ones, but the result is the same nonetheless


#13

Same here, bought through HIB#4. I was receiving an immediate segfault when running GSB.bin.x86; I installed libpng3, and it reached the Title Screen, but that’s as far as I got.

Running Linux Mint 11 (Which I think is based on Ubuntu 11.04), with an onboard Intel Graphics chipset.


#14

++, debian testing, 3.0.0.1-686-pae SMP i686 segfault on startup; installed libpng3, which then threw invalid pointer passed to free(), deep in libvorbisfile.

~/Downloads/GSB$ ./GSB.bin.x86
*** glibc detected *** ./GSB.bin.x86: free(): invalid pointer: 0x0810c63c ***
======= Backtrace: =========
/lib/i386-linux-gnu/i686/cmov/libc.so.6(+0x6aac1)[0xb7057ac1]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(+0x6c328)[0xb7059328]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(cfree+0x6d)[0xb705c3dd]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(_IO_free_backup_area+0x34)[0xb7055f74]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(__underflow+0x57)[0xb7056757]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(+0x662f0)[0xb70532f0]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(_IO_sgetn+0x28)[0xb7055258]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(fread+0x7e)[0xb7048e2e]
/home/alexl/Downloads/GSB/lib/libvorbisfile.so.3(+0x1c51)[0xb72c4c51]
/home/alexl/Downloads/GSB/lib/libvorbisfile.so.3(+0x3c6a)[0xb72c6c6a]
/home/alexl/Downloads/GSB/lib/libvorbisfile.so.3(+0x417f)[0xb72c717f]
/home/alexl/Downloads/GSB/lib/libvorbisfile.so.3(ov_open_callbacks+0x4c)[0xb72c9cbc]
./GSB.bin.x86(_ZN14cOAL_OggStream14CreateFromFileERKSbIwSt11char_traitsIwESaIwEE+0xd0)[0x83a4cb0]
./GSB.bin.x86(_ZN11cOAL_Device10LoadStreamERKSbIwSt11char_traitsIwESaIwEE+0x5e)[0x839b19e]
./GSB.bin.x86(_ZN11cOAL_Device10LoadStreamERKSs+0x30)[0x839b2a0]
./GSB.bin.x86(_Z15OAL_Stream_LoadRKSs+0x21)[0x8390431]
./GSB.bin.x86(_ZN10GUI_Sounds10StartMusicESsb+0x16e)[0x8360a6e]
./GSB.bin.x86(_ZN10GUI_Sounds10InitialiseEv+0x19f)[0x836175f]
./GSB.bin.x86(_ZN4Game7InitAppEv+0x28e)[0x825866e]
./GSB.bin.x86(_Z7WinMainPvS_Pci+0x35)[0x82e23a5]
./GSB.bin.x86(main+0x3a)[0x8385e5a]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0xb7003e46]
./GSB.bin.x86(ftell+0x55)[0x810c691]

once i moved the install from ~/Downloads/ out to /usr/local/bin/games, then it went to the hanging intro screen issue with the following output:

/usr/local/games/GSB$ ./GSB.bin.x86
AL lib: pulseaudio.c:612: Context did not connect: Connection refused
AL lib: pulseaudio.c:612: Context did not connect: Connection refused
ALSA lib pcm.c:2212:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2212:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2212:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_dmix.c:957:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
Killed

#15

Same experience as everyone still - adding the library (and rebooting) gets me to the hung first screen. It’s not the files in the download, in case anyone was wondering. The data files from the Windows version from HB#4 (d/l’d it for my son) still create the same error. Thinking it might be the libraries, I removed the library directories (and the x64 version), and still saw the same error.

Only difference is that I can’t see GDB’s error output anymore - when I kill it from another terminal instance (C-A-F1, and by the way, it requires a SIGKILL to do so), GDB just says it was killed. :frowning:

And the Windows version works great under Wine 1.2.2 (I’m using Play On Linux for that.)

HEY! I wonder if it’s the configuration file location? For the Windows version, it creates a whole folder under \USER\My Documents\My Games (see this thread). But I’m not seeing ANYTHING like that under linux. I wonder if that’s what is actually hanging?


#16

Well, rats. Found the answer (in this thread) and that doesn’t seem to be the issue. Only other guess I have is that it’s a multicore issue - I saw where that was a problem at one time, and it definitely maxes out one core of my machine…


#17

same problem, Debian Wheezy (testing) x86_64 with kernel 3.1.0-1-amd64 on Core2 Duo.

(splash screen flashes briefly then vanishes, binary dies with a segfault)

running GSB.bin.x86_64 I get

Program received signal SIGSEGV, Segmentation fault. __memcpy_ssse3 () at ../sysdeps/x86_64/multiarch/memcpy-ssse3.S:153 153 ../sysdeps/x86_64/multiarch/memcpy-ssse3.S: No such file or directory. in ../sysdeps/x86_64/multiarch/memcpy-ssse3.S (gdb) bt #0 __memcpy_ssse3 () at ../sysdeps/x86_64/multiarch/memcpy-ssse3.S:153 #1 0x00000000004eb716 in GVertexBuffer::CopyIn(_D3DTLVERTEX*, int) () #2 0x00000000004e96c8 in LibTextEngine::ProcessTextQueue(int) () #3 0x00000000005e812b in GUI_MainMenu::Draw() () #4 0x0000000000629783 in Game::GameProc() () #5 0x00000000006b3bd8 in WinMain(void*, void*, char*, int) () #6 0x00007ffff4d02ead in __libc_start_main (main=<optimized out>, argc=<optimized out>, ubp_av=<optimized out>, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffeb08) at libc-start.c:228 #7 0x00000000004e0de9 in _start ()

though it smells like this bug, running with LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libc/memcpy-preload.so just dies in memmove instead.

Program received signal SIGSEGV, Segmentation fault. __memmove_ssse3 () at ../sysdeps/x86_64/multiarch/memcpy-ssse3.S:153 153 ../sysdeps/x86_64/multiarch/memcpy-ssse3.S: No such file or directory. in ../sysdeps/x86_64/multiarch/memcpy-ssse3.S (gdb) bt #0 __memmove_ssse3 () at ../sysdeps/x86_64/multiarch/memcpy-ssse3.S:153 #1 0x00000000004eb716 in GVertexBuffer::CopyIn(_D3DTLVERTEX*, int) () #2 0x00000000004e96c8 in LibTextEngine::ProcessTextQueue(int) () #3 0x00000000005e812b in GUI_MainMenu::Draw() () #4 0x0000000000629783 in Game::GameProc() () #5 0x00000000006b3bd8 in WinMain(void*, void*, char*, int) () #6 0x00007ffff4b01ead in __libc_start_main (main=<optimized out>, argc=<optimized out>, ubp_av=<optimized out>, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffeac8) at libc-start.c:228 #7 0x00000000004e0de9 in _start ()

installing libpng3 makes no difference, I still see a segfault in memcpy with the same call chain.


#18

running as

taskset 0x1 ./GSB.bin.x86_64

to restrict it to a single core doesn’t help either.


#19

steven, its config is in ~/.positech/GSB/

[edit] nevermind, forgot the -f on strace. its doing stuff while the llseek is looping. uploading full trace as attachment.
GSB.log.gz (72.8 KB)


#20

almost the same problem here… I can sucessfully start x86_64 and get to the initial game screen, but when I click “ship design” it crashes out in exactly the same manner as the rest of you.

annoyingly the windoze version of the game works under wine, the only fault i’ve found there is that it doesn’t accept keyboard input.