Code: Select all
(gdb) #0 0x00002b2737e917c9 in raise () from /lib/libc.so.6
#1 0x00002b2737e92bae in abort () from /lib/libc.so.6
#2 0x00002b2737ec63be in __fsetlocking () from /lib/libc.so.6
#3 0x00002b2737ecb79c in malloc_usable_size () from /lib/libc.so.6
#4 0x00000000006b3a54 in js_PurgeDeflatedStringCache ()
#5 0x00000000006b3ac7 in js_FinalizeStringRT ()
#6 0x00000000006b3a82 in js_FinalizeString ()
#7 0x000000000067eeb3 in js_GC ()
#8 0x000000000067e837 in js_ForceGC ()
#9 0x000000000065da4a in JS_GC ()
#10 0x000000000047c025 in UOX::CJSEngine::CollectGarbage ()
#11 0x000000000061984a in UOX::CollectGarbage ()
#12 0x0000000000653610 in UOX::CWorldMain::SaveNewWorld ()
#13 0x000000000061d880 in UOX::CWorldMain::CheckAutoTimers ()
#14 0x000000000061f4a0 in main ()First place I went to is onGumpPress in ./js/items/moongate.js. There, I found where the actual teleport is called in the script. It's using srcChar.Teleport(X, Y, Z, World) to make the move. I tried to track this down in the source and think I found it in cChar.cpp, CChar::Teleport(void).
The curious thing is that I see the "go" and "tele" commands use SetLocation instead -- is there a reason for this? I suppose I could potentially change Teleport to SetLocation as a workaround, but ideally I'd like to try to figure out the root of the problem with the Teleport function and correct it (especially since I'm not sure if anything else uses it at the moment).
Any ideas what would be causing the character to leave behind a clone of it self?