even just calling it 'dosbox' in a dir without a dosbox.configue file
1[New Thread 0x7fffea813700 (LWP 26089)] 2 3 Program received signal SIGSEGV, Segmentation fault. 4 0x00007ffff613748e in std::string::compare(char const*) const () 5 from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 6(gdb) bt 7#0 0x00007ffff613748e in std::string::compare(char const*) const () 8 from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 9#1 0x00000000005ee2d8 in operator==<char, std::char_traits<char>, std::allocator<char> > (__rhs=0x62a1b2 "PROGRAM_MOUNT_CDROMS_FOUND", 10 __lhs=<error reading variable: Cannot access memory at address 0x35>) 11 at /usr/include/c++/4.9/bits/basic_string.h:2540 12#2 MSG_Add (_name=_name@entry=0x62a1b2 "PROGRAM_MOUNT_CDROMS_FOUND", 13 _val=_val@entry=0x62a4dc "CDROMs found: %d\n") at messages.cpp:49 14#3 0x00000000004a8053 in DOS_SetupPrograms () at dos_programs.cpp:1485 15#4 0x000000000049d7cf in DOS (configuration=0x38ffdb0, this=0x3985fd0) 16 at dos.cpp:1228 17#5 DOS_Init (sec=0x38ffdb0) at dos.cpp:1248 18#6 0x00000000005f5f31 in Section::ExecuteInit (this=0x38ffdb0, 19 initall=initall@entry=true) at setup.cpp:748 20#7 0x00000000005f5f76 in Config::Init (this=0x7fffffffdeb0) at setup.cpp:732 21#8 0x000000000040a534 in main (argc=<optimized out>, argv=<optimized out>) 22 at sdlmain.cpp:2072
Hope this is the cause of the mystery crashes and it can be traced. Hopefully not back at my environment being fucked.
Try a clean SVN (no munt stuff) and without debug first.
The MSG_Add code seems okay to me at first glance. (where your backtrace points at)
It isn't the first time when this function is called either ( which is with CONFIG_FULLSCREEN )
Yup. I changed the main config file to set core to simple and started with ./dosbox -userconf (although i can't scroll up to see if the config file chosen is the right one because the debugger window cleared the console).
edit: i think the output of configure might be showing the problem.
1./configure 2checking build system type... x86_64-unknown-linux-gnu 3checking host system type... x86_64-unknown-linux-gnu 4checking for a BSD-compatible install... /usr/bin/install -c 5checking whether build environment is sane... yes 6checking for a thread-safe mkdir -p... /bin/mkdir -p 7checking for gawk... no 8checking for mawk... mawk 9checking whether make sets $(MAKE)... yes 10checking whether make supports nested variables... yes 11checking whether make sets $(MAKE)... (cached) yes 12checking for gcc... gcc 13checking whether the C compiler works... yes 14checking for C compiler default output file name... a.out 15checking for suffix of executables... 16checking whether we are cross compiling... no 17checking for suffix of object files... o 18checking whether we are using the GNU C compiler... yes 19checking whether gcc accepts -g... yes 20checking for gcc option to accept ISO C89... none needed 21checking whether gcc understands -c and -o together... yes 22checking for style of include used by make... GNU 23checking dependency style of gcc... gcc3 24checking how to run the C preprocessor... gcc -E 25checking for g++... g++ 26checking whether we are using the GNU C++ compiler... yes 27checking whether g++ accepts -g... yes 28checking dependency style of g++... gcc3 29checking for ranlib... ranlib 30checking for sdl-config... /usr/bin/sdl-config 31checking for SDL - version >= 1.2.0... yes 32checking SDL version only being 1.2.X... yes 33checking for an ANSI C-conforming const... yes 34checking for inline... inline 35checking for grep that handles long lines and -e... /bin/grep 36checking for egrep... /bin/grep -E 37checking for ANSI C header files... yes 38checking for sys/types.h... yes 39checking for sys/stat.h... yes 40checking for stdlib.h... yes 41checking for string.h... yes 42checking for memory.h... yes 43checking for strings.h... yes 44checking for inttypes.h... yes 45checking for stdint.h... yes 46checking for unistd.h... yes 47checking for size_t... yes 48checking whether struct tm is in sys/time.h or time.h... time.h 49checking size of unsigned char... 1 50checking size of unsigned short... 2 51checking size of unsigned int... 4 52checking size of unsigned long... 8 53checking size of unsigned long long... 8 54checking size of int *... 8 55checking for stdlib.h... (cached) yes 56checking for sys/types.h... (cached) yes 57checking for sys/socket.h... yes 58checking for netinet/in.h... yes 59checking for pwd.h... yes 60checking if environ can be included... yes
…Show last 78 lines
61checking if environ can be linked... yes 62checking if dirent includes d_type... yes 63checking for powf in libm... yes 64checking for library containing clock_gettime... none required 65checking if compiler allows __attribute__... yes 66checking if compiler allows __attribute__((always_inline)) ... yes 67checking if compiler allows __attribute__((fastcall)) ... no 68checking if compiler allows __builtin_expect... yes 69checking if compiler supports -mno-ms-bitfields... yes 70checking for ALSA CFLAGS... 71checking for ALSA LDFLAGS... -lasound -lm -ldl -lpthread 72checking for libasound headers version >= 0.9.0... found. 73checking for snd_ctl_open in -lasound... yes 74checking whether byte ordering is bigendian... no 75checking for target cpu type... x86-64 bit compatible 76checking whether x86 dynamic cpu core will be enabled... no 77checking whether recompiling cpu core will be enabled... yes 78checking whether fpu emulation will be enabled... yes 79checking whether the x86/x64 assembly fpu core will be enabled... yes 80checking whether to enable unaligned memory access... yes 81checking png.h usability... yes 82checking png.h presence... yes 83checking for png.h... yes 84checking for png_get_io_ptr in -lpng... yes 85checking SDL_net.h usability... yes 86checking SDL_net.h presence... yes 87checking for SDL_net.h... yes 88checking for SDLNet_Init in -lSDL_net... yes 89checking for main in -lX11... yes 90checking X11/XKBlib.h usability... yes 91checking X11/XKBlib.h presence... yes 92checking for X11/XKBlib.h... yes 93checking for XKBlib support... yes 94checking for main in -lGL... yes 95checking for main in -lopengl32... no 96checking GL/gl.h usability... yes 97checking GL/gl.h presence... yes 98checking for GL/gl.h... yes 99checking whether opengl display output will be enabled... yes 100checking SDL_sound.h usability... yes 101checking SDL_sound.h presence... yes 102checking for SDL_sound.h... yes 103checking for Sound_Init in -lSDL_sound... yes 104checking for Sound_Seek in -lSDL_sound... yes 105checking sys/mman.h usability... yes 106checking sys/mman.h presence... yes 107checking for sys/mman.h... yes 108checking for mprotect... yes 109checking for setpriority support... yes 110checking that generated files are newer than configure... done 111configure: creating ./config.status 112config.status: creating Makefile 113config.status: creating src/Makefile 114config.status: creating src/cpu/Makefile 115config.status: creating src/cpu/core_full/Makefile 116config.status: creating src/cpu/core_normal/Makefile 117config.status: creating src/cpu/core_dyn_x86/Makefile 118config.status: creating src/cpu/core_dynrec/Makefile 119config.status: creating src/debug/Makefile 120config.status: creating src/dos/Makefile 121config.status: creating src/fpu/Makefile 122config.status: creating src/gui/Makefile 123config.status: creating src/hardware/Makefile 124config.status: creating src/hardware/serialport/Makefile 125config.status: creating src/ints/Makefile 126config.status: creating src/libs/Makefile 127config.status: creating src/libs/zmbv/Makefile 128config.status: creating src/libs/gui_tk/Makefile 129config.status: creating src/misc/Makefile 130config.status: creating src/shell/Makefile 131config.status: creating src/platform/Makefile 132config.status: creating src/platform/visualc/Makefile 133config.status: creating visualc_net/Makefile 134config.status: creating include/Makefile 135config.status: creating docs/Makefile 136config.status: creating config.h 137config.status: executing depfiles commands
is that "checking host system type... x86_64-unknown-linux-gnu" thing normal? Wasn't it p much supposed to pinpoint my cpu type at least?
Last edited by Serious Callers Only on 2015-07-30, 12:37. Edited 1 time in total.
For what it's worth i managed to run the Azrael's Tear bug through a debugger (with normal svn - without patches, just built locally with ./autogen; ./configure; make - non-debug dosbox for obvious reasons). It gave me this
1terminate called after throwing an instance of 'char*' 2[New Thread 0x7fffeaa37700 (LWP 24306)] 3 4Program received signal SIGABRT, Aborted. 50x00007ffff5c0e267 in __GI_raise (sig=sig@entry=6) 6 at ../sysdeps/unix/sysv/linux/raise.c:55 755 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory. 8(gdb) bt 9#0 0x00007ffff5c0e267 in __GI_raise (sig=sig@entry=6) 10 at ../sysdeps/unix/sysv/linux/raise.c:55 11#1 0x00007ffff5c0feca in __GI_abort () at abort.c:89 12#2 0x00007ffff652206d in __gnu_cxx::__verbose_terminate_handler() () 13 from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 14#3 0x00007ffff651fee6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 15#4 0x00007ffff651ff31 in std::terminate() () 16 from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 17#5 0x00007ffff6520149 in __cxa_throw () 18 from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 19#6 0x00000000005e999f in E_Exit ( 20 format=format@entry=0x60c68b "FPU stack overflow") at support.cpp:183 21#7 0x0000000000474b70 in FPU_PREP_PUSH () 22 at core_dynrec/../../fpu/fpu_instructions_x86.h:960 23#8 0x00007fffebc76532 in ?? () 24#9 0x00007fffffffa8e8 in ?? () 25#10 0x00007fffeba1c043 in ?? () 26#11 0x0000000000195afb in ?? () 27#12 0x0000000000489f16 in CPU_Core_Dynrec_Run () at core_dynrec.cpp:231 28#13 0x000000000040a5a7 in Normal_Loop () at dosbox.cpp:136 29#14 0x000000000040af3e in DOSBOX_RunMachine () at dosbox.cpp:260 30#15 0x0000000000412ec1 in CALLBACK_RunRealInt (intnum=intnum@entry=33 '!')
It's semi random, but happens p quick most times. Often just in the first room less often in the 3rd or 4th room after shooting a guy and speaking to another guy. It seems to happen often when speaking to that guy if it didn't in the first room. You can also wait on the first room and it seems most time it crashes (probably due to the critters moving around).
I was playing with dos32a replacing the packed dos4g, but it also happens in the untouched executable install.
Dosbox 0.74-4 from the repositories doesn't have this problem
yeah. I added that exit condition. I am surprised it triggers in a real game, so maybe some fpu register isn't cleared by dosbox correctly. Or they would rely on the stack overflow exception, but I don't see why a game would do that as it isn't the greatest for speed.
I did find that the game doesn't crash with 32bits dosbox (my ppa build). But i think it's still a regression, since it didn't either with (i believe, because i never specified :i386) dosbox 0.74-4 64 bits build from the ubuntu repositories.
Yeah. I have to see if I can find the game.
The game regressed, but the exit condition that was added, makes sense. So maybe something else is going wrong.