投稿者 トピック: [r4047] ゲーム終了時にクラッシュする  (参照数 2247 回)

z9999+

  • 管理人
  • 急行
  • *
  • 投稿: 381
ゲーム終了時にクラッシュする。r4038では発生しなかった。

Crash on exiting game. This problem didn't happen at least until r4038.

コード: [選択]
sim4049d.exe caused an Access Violation at location 006628b0 in module sim4049d.exe Reading from location 00000004.

Registers:
eax=068134c0 ebx=00000008 ecx=00000004 edx=0023e950 esi=01cb9bad edi=112cfe80
eip=006628b0 esp=0023e928 ebp=0023e928 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:
006628B0  sim4049d.exe:006628B0  ding_t::get_pos() const  simdings.h:304
...
* @see ding_t#ding_t
*/
> inline koord3d get_pos() const {return pos;}

// only zeiger_t overlays this function, so virtual definition is overkill
...

005BBAF6  sim4049d.exe:005BBAF6  karte_t::play_sound_area_clipped(koord, sound_info) const  simworld.cc:3753
...
{
if(is_sound) {
> const int dist = koord_distance( pos, zeiger->get_pos() );

if(dist < 100) {
...

00542DDB  sim4049d.exe:00542DDB  spieler_t::buche(long long, koord, player_cost)  simplay.cc:481
...
info.pri = 0;

> welt->play_sound_area_clipped(pos, info);
}
}
...

0055BC64  sim4049d.exe:0055BC64  convoi_t::destroy()  simconvoi.cc:2623
...

// pay the current value
> besitzer_p->buche( calc_restwert(), get_pos().get_2d(), COST_NEW_VEHICLE );
besitzer_p->buche( -calc_restwert(), COST_ASSETS );

...

005AAF66  sim4049d.exe:005AAF66  karte_t::destroy()  simworld.cc:502
...
while (!convoi_array.empty()) {
convoihandle_t cnv = convoi_array.back();
> cnv->destroy();
}
convoi_array.clear();
...

0057E2D5  sim4049d.exe:0057E2D5  simu_main(int, char**)  simmain.cc:1142
...
}

> welt->destroy();// some compiler aparently do not like accessing welt during destroy
delete welt;
welt = NULL;
...

005F0327  sim4049d.exe:005F0327  WinMain  simsys_w16.cc:805
...
}

> simu_main(argc, argv);
timeEndPeriod(1);

...

005F10FA  sim4049d.exe:005F10FA  dr_play_sample(int, int)  win32_sound.cc:103
...
last_sample_nr = sample_number;
}
> }

...

00401247  sim4049d.exe:00401247
00401298  sim4049d.exe:00401298
7C817077  kernel32.dll:7C817077  RegisterWaitForInputIdle

引用
Debug: karte_t::interactive:   calling win_poll_event
Debug: karte_t::interactive:   can I get some sleep?
Debug: interrupt_check:   called from (karte_t::interactive())
Debug: interrupt_check:   called from (karte_t::interactive())
Debug: karte_t::interactive:   end of sleep
Debug: karte_t::interactive:   point of loop return
Debug: karte_t::interactive:   decide to play a sound
Debug: karte_t::interactive:   end of sound
Debug: karte_t::interactive:   calling win_poll_event
Message: karte_t::destroy():   destroying world
Message: karte_t::destroy():   label clear
Message: automobil_t::set_convoi():   00000000
Message: convoi_t::unset_line():   removing old destinations from line=202, fpl=0947EAB8