PlaneShift
Development => Development Deliberation => Topic started by: dimaq on January 05, 2005, 10:16:02 pm
-
Built mostly fine according to Acraig\'s instructions [http://laanx.fragnetics.com/gentoo], thanks Andrex!
had to add \"unsigned int cs_floatrand_seed;\" to CS/libs/csutil/floatrand.cpp, who knows how it went missing, but the change is trivial anyway.
updater agreed to work and seems to have updated everything.
psclient started up (woo-hoo), allows to walk around for a some time, fighting and trading worked a couple of times, and the client even managed to relight the underworld.
relighting hydlaa_plaza reliably segv\'s psclient though.
other segv\'s are random-ish, can\'t quite point them out yet. will post backtraces if someone\'s interested...
-
Sure. Any bt\'s for seg fault would be great. Post here and say what causes them if you can, or what you were doing at the time. I assume you\'re using rapid collision?
-
will post backtrace on the weekend... edit: see below
still cannot get function names, et. al. in the hydlaa plaza relight backtrace. bewildreing...
-
this sort of crash happens on hydlaa plaza, while trading with the blacksmith, although the real reason could easily be all the players appearing in the square.
to reproduce: click on Harnquist, click \'sell\', click \'Items\' - crashes before items (that could be sold to Harnquist) appear on the screen.
I\'ve got a few items like ore and rotten meat and and stuff.
just wondering - could this be a 64-bit issue in disguise of varargs?
RemoveObject:
Removing entity \'Kylez Zazochi\'
Received actor Ahruman Wizaru.
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 1844)]
0x0000002a96001590 in strlen () from /lib/libc.so.6
(gdb) bt
#0 0x0000002a96001590 in strlen () from /lib/libc.so.6
#1 0x00000000006df81d in ap_vformatter(int (*)(ap_vformatter_buff*), ap_vformatter_buff*, char const*, __va_list_tag*) (flush_func=0x6e0164 ,
vbuff=0x7fbfffdb50, fmt=0x70a9c2 \"s\", ap=0x7fbffff0a0)
at libs/csutil/snprintf.cpp:948
#2 0x00000000006e032f in cs_vsnprintf(char*, unsigned long, char const*, __va_list_tag*) (buf=0x8f24610 \" format=0x70a9c1 \"%s\", ap=0x7fbffff0a0) at libs/csutil/snprintf.cpp:1237
#3 0x00000000006c5d43 in csString::FormatV(char const*, __va_list_tag*) (
this=0x9388d0, format=0x70a9c1 \"%s\", args=0x7fbffff0a0)
at libs/csutil/csstring.cpp:404
#4 0x0000002a99b9de45 in ?? ()
#5 0x000000000000000a in ?? ()
#6 0x0000000000544069 in csReporterHelper::ReportV(iObjectRegistry*, int, char const*, char const*, __va_list_tag*) () at tinyxml.h:273
#7 0x00000000005f715e in pslog::LogMessage(char const*, int, char const*, int, int, char const*, ...) () at tinyxml.h:273
#8 0x00000000005a45f2 in pawsMerchantWindow::HandleItems(char const*) ()
at tinyxml.h:273
#9 0x00000000005a3aad in pawsMerchantWindow::HandleMessage(MsgEntry*) ()
at tinyxml.h:273
#10 0x00000000005e7b70 in MsgHandler::Publish(MsgEntry*) () at tinyxml.h:273
#11 0x00000000005c33e6 in psClientMsgHandler::HandleEvent(iEvent&) ()
---Type to continue, or q to quit---
at tinyxml.h:273
#12 0x00000000005c364d in psClientMsgHandler::EventHandler::HandleEvent(iEvent&) () at tinyxml.h:273
#13 0x00000000006ba8c2 in csEventQueue::Notify(unsigned) (this=0x90b4d0,
pseudo_event=8) at libs/csutil/cseventq.cpp:219
#14 0x00000000006ba8fa in csEventQueue::Process() (this=0x90b4d0)
at libs/csutil/cseventq.cpp:226
#15 0x00000000006effff in csDefaultRunLoop(iObjectRegistry*) (r=0x90c2e0)
at libs/csutil/generic/runloop.cpp:81
#16 0x000000000054088d in main () at tinyxml.h:273
-
here\'s the backtrace again, hopefully without the smileys *g*
(gdb) bt
#0 0x0000002a96001590 in strlen () from /lib/libc.so.6
#1 0x00000000006df81d in ap_vformatter(int (*)(ap_vformatter_buff*), ap_vformatter_buff*, char const*, __va_list_tag*) (flush_func=0x6e0164 ,
vbuff=0x7fbfffdb50, fmt=0x70a9c2 \"s\", ap=0x7fbffff0a0)
at libs/csutil/snprintf.cpp:948
#2 0x00000000006e032f in cs_vsnprintf(char*, unsigned long, char const*, __va_list_tag*) (buf=0x8f24610 \" format=0x70a9c1 \"%s\", ap=0x7fbffff0a0) at libs/csutil/snprintf.cpp:1237
#3 0x00000000006c5d43 in csString::FormatV(char const*, __va_list_tag*) (
this=0x9388d0, format=0x70a9c1 \"%s\", args=0x7fbffff0a0)
at libs/csutil/csstring.cpp:404
#4 0x0000002a99b9de45 in ?? ()
#5 0x000000000000000a in ?? ()
#6 0x0000000000544069 in csReporterHelper::ReportV(iObjectRegistry*, int, char const*, char const*, __va_list_tag*) () at tinyxml.h:273
#7 0x00000000005f715e in pslog::LogMessage(char const*, int, char const*, int, int, char const*, ...) () at tinyxml.h:273
#8 0x00000000005a45f2 in pawsMerchantWindow::HandleItems(char const*) ()
at tinyxml.h:273
#9 0x00000000005a3aad in pawsMerchantWindow::HandleMessage(MsgEntry*) ()
at tinyxml.h:273
#10 0x00000000005e7b70 in MsgHandler::Publish(MsgEntry*) () at tinyxml.h:273
#11 0x00000000005c33e6 in psClientMsgHandler::HandleEvent(iEvent&) ()
---Type to continue, or q to quit---
at tinyxml.h:273
#12 0x00000000005c364d in psClientMsgHandler::EventHandler::HandleEvent(iEvent&) () at tinyxml.h:273
#13 0x00000000006ba8c2 in csEventQueue::Notify(unsigned) (this=0x90b4d0,
pseudo_event=8) at libs/csutil/cseventq.cpp:219
#14 0x00000000006ba8fa in csEventQueue::Process() (this=0x90b4d0)
at libs/csutil/cseventq.cpp:226
#15 0x00000000006effff in csDefaultRunLoop(iObjectRegistry*) (r=0x90c2e0)
at libs/csutil/generic/runloop.cpp:81
#16 0x000000000054088d in main () at tinyxml.h:273
(gdb) frame 3
#3 0x00000000006c5d43 in csString::FormatV(char const*, __va_list_tag*) (
this=0x9388d0, format=0x70a9c1 \"%s\", args=0x7fbffff0a0)
at libs/csutil/csstring.cpp:404
404 rc = cs_vsnprintf(Data, MaxSize, format, args);
-
Originally posted by Xordan
Sure. Any bt\'s for seg fault would be great. Post here and say what causes them if you can, or what you were doing at the time. I assume you\'re using rapid collision?
alright I looked at all the compiler warnings for plugin/collide directory...
quite a few can be serious in a 64-bit environment (like uint32 a = new xx(); delete a;)
couldn\'t bring myself to fix all of them.
so, how do I know which collision detection model/algorithm planeshift (psclient) uses?
-
I have just built myself a new 64bit AMD machine and am intending to attempt PS server and client compilation on it.
If you have debugged any 32/64 bit compilation clashes could you possibly create a diff file or, better, submit your changed files with appropriate #if preprocessor directives to the main CVS, so that I dont end up duplicating your work?
I am sure I am not the only person who would appraciate a 64 bit compileable version of the source ;)
-
well it still crashes - I don\'t think I really improved on anything yet. I\'m slow :)
-
psclient.cfg
Use: \"System.PlugIns.iCollideSystem = crystalspace.collisiondetection.opcod\" (without quotes) to use opcod
Use: \"System.PlugIns.iCollideSystem = crystalspace.collisiondetection.rapid\" (without quotes) to use rapid
-
Just tested it... psclient crashes with both rapid and opcode collision detection algorithms.
it crashes in different ways though - while rapid collision crashes clearly in the collision detection bit, whith:
plugins/collide/rapid/csrapid.h:55: failed assertion \'false\'
(that\'s in virtual bool CollideRay(,,,,))
opcode collision allows me to get further - and crashes in the trading dialogue - any trading (buy or sell) as long as the right pane should have some items in it.