オンラインゲームで、クライアントが接続時にサーバーがクラッシュする。
With online game mode, server will crash when a client joined.
r4059 also crashed.
sim4061d.exe caused an Access Violation at location 00586503 in module sim4061d.exe Reading from location 00000004.
Registers:
eax=00000004 ebx=06863b48 ecx=00000000 edx=0023e3dc esi=01cb9d35 edi=cf425710
eip=00586503 esp=0023e3b0 ebp=0023e3f8 iopl=0 nv up ei pl nz na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202
Call stack:
00586503 sim4061d.exe:00586503 message_t::rdwr(loadsave_t*) simmesg.cc:202
...
msg_count = 0;
for( slist_tpl<node *>::const_iterator iter=list.begin(), end=list.end(); iter!=end, msg_count<2000; ++iter ) {
> if( ((*iter)->type & local_flag) == 0 ) {
msg_count ++;
}
...
005BD34E sim4061d.exe:005BD34E karte_t::speichern(loadsave_t*, bool) simworld.cc:3966
...
// saving messages
if( file->get_version()>=102005 ) {
> msg->rdwr(file);
}
DBG_MESSAGE("karte_t::speichern(loadsave_t *file)", "saved messages");
...
005BC493 sim4061d.exe:005BC493 karte_t::speichern(char const*, char const*, bool) simworld.cc:3782
...
}
else {
> speichern(&file,silent);
const char *success = file.close();
if(success) {
...
0044F477 sim4061d.exe:0044F477 nwc_sync_t::do_command(karte_t*) network_cmd.cc:384
...
bool old_restore_UI = umgebung_t::restore_UI;
umgebung_t::restore_UI = true;
> welt->speichern(filename, SERVER_SAVEGAME_VER_NR, false );
// ok, now sending game
...
005C4670 sim4061d.exe:005C4670 karte_t::interactive(unsigned) simworld.cc:5626
...
}
}
> nwc->do_command(this);
}
delete nwc;
...
0057E3B5 sim4061d.exe:0057E3B5 simu_main(int, char**) simmain.cc:1120
...
// run the loop
> welt->interactive(quit_month);
new_world = true;
...
005F0B27 sim4061d.exe:005F0B27 WinMain simsys_w16.cc:805
...
}
> simu_main(argc, argv);
timeEndPeriod(1);
...
005F18FA sim4061d.exe:005F18FA dr_play_sample(int, int) win32_sound.cc:103
...
last_sample_nr = sample_number;
}
> }
...
00401247 sim4061d.exe:00401247
00401298 sim4061d.exe:00401298
7C817077 kernel32.dll:7C817077 RegisterWaitForInputIdle