I am testing DS 2.1.1 on SuSe 10.1 (64-bit) environment and I keep getting seg faults. Under gdb, I found this error:
This GDB was configured as "x86_64-suse-linux"...Using host libthread_db library "/lib64/libthread_db.so.1".
"/home/test/mud/ds/ds2.1.1/bin/mudos.cfg" is not a core dump: File format not recognized
Any ideas on how to fix this to run under 64-bit environments?
-- M
It sounds like you're trying to run gdb with mudos.cfg configured
as a corefile. Try the following:
# cd /home/test/mud/ds/ds2.1.1/bin/
# gdb ./driver core
(gdb) run ./mudos.cfg
This should provide useful output.
Unfortunately, I am poor and cannot afford a fancy
64 bit intel system to test on, so I have not been able to
track down this problem for sure. However, I can
tell you that compiling it while booted in 32 bit mode
should produce a binary runnable in 64 bit mode.
Sorry I can't be more help.
-Crat
http://dead-souls.net
Operating Environment: AMD Opteron, Model 165 Dual-Core
O/S Environment: OpenSuSe V10.1, 64-Bit build
Linux Kernel: 2.6.16.21-0.25-smp
Ok, here is the gdb output result:
Starting program: /home/test/mud/ds/ds2.1.1/bin/driver ./mudos.cfg
using config file: ./mudos.cfg
Initializing internal tables....
----------------------------------------------------------------------------
TestMud (MudOS v22.2b14) starting up on Linux - Sun Nov 12 23:54:00 2006
Connection to address server (localhost 9999) refused.
Program received signal SIGSEGV, Segmentation fault.
0x000000000045bc14 in smalloc_free (ptr=0x2aef68d70d1c) at malloc.c:237
237 *s_next_ptr(block) = sfltable;
---
I am just trying to compile the driver code to show at least I can actively support it for anyone that wants to use my game hosting services in the future.
Cratylus: If you need a place to test 64-bit code, just let me know. I got alot of room on the server and a stable net connection and would be happy to setup a free account for such testing purposes. :-)
Yep, that's a segfault all right :)
All I can suggest is also playing around with strace to
get a realtime look at the last thing the program was doing
when it died.
Other than, that, I hate to say it, but I really can't help
unless I have a machine to reproduce this on.
EDIT:
Awesome. sure I'd love a chance to play with this.
PM me with what you need from me
-Crat
http://dead-souls.net
Ok, I can definitely reproduce the problem. I'll work
on it this evening. Thanks for the access.
-Crat
http://dead-souls.net
Mystery solved.
It appears that the build-in malloc in MudOS doesn't
work well on some systems. I'm not clear on whether the
problem is being 64-bit, or multicored, or both. But whatever
the exact cause, this is the fix:
modify these lines in local_options:
#undef SYSMALLOC
#define SMALLOC
#define DO_MSTATS
to look like this:
#define SYSMALLOC
#undef SMALLOC
#undef DO_MSTATS
And then do your compile.
-Crat
http://dead-souls.net