News:

Simutrans.com Portal
Our Simutrans site. You can find everything about Simutrans from here.

[solved]r2295 - Crash when buildind a bridge on the stop

Started by z9999, February 06, 2009, 05:05:54 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

z9999

When building bridge and other end is station, Simutrans crashes.

Quote
Message: brueckenbauer_t::baue():   called on 44,53 for bridge type 'tb_classic_road'
Message: brueckenbauer_t::baue():   build from 44,53,-1
FATAL ERROR: unknown
pure virtual function call
Aborting program execution ...

Quote
sim.exe caused an Integer Divide By Zero at location 0058a36d in module sim.exe.

Registers:
eax=0000000f ebx=0023ea40 ecx=00000000 edx=00000000 esi=006d0074 edi=00730070
eip=0058a36d esp=0023e438 ebp=0023e9c8 iopl=0         nv up ei pl zr ac po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000256

Call stack:
0058A36D  sim.exe:0058A36D  log_t::fatal(char const*, char const*, ...)  log.cc:238
   ...
   if(old_level>4) {
   // generate a division be zero error, if the user request it
>   printf("%i",15/make_this_a_division_by_zero);
   make_this_a_division_by_zero &= 0xFF;
   }
   ...

00402EDC  sim.exe:00402EDC  brueckenbauer_t::baue(karte_t*, spieler_t*, koord, bruecke_besch_t const*)  brueckenbauer.cc:371
   ...
   baue_bruecke(welt, sp, gr->get_pos(), end, zv, besch, wegbauer_t::leitung_besch );
   } else {
>   baue_bruecke(welt, sp, gr->get_pos(), end, zv, besch, weg->get_besch() );
   }
   return NULL;
   ...

0058735E  sim.exe:0058735E  karte_t::interactive()  simworld.cc:4420
   ...
   
   if (!swallowed) {
>   interactive_event(ev);
   }
   
   ...

005B0483  sim.exe:005B0483  WinMain  simsys_w16.cc:756
   ...
   GetWindowRect(GetDesktopWindow(), &MaxSize);
   
>   simu_main(argc, argv);
   
   #ifdef MULTI_THREAD
   ...

00401247  sim.exe:00401247
00401298  sim.exe:00401298
7C817067  kernel32.dll:7C817067  RegisterWaitForInputIdle


gerw

Quote from: z9999 on February 06, 2009, 05:05:54 PM
   if(old_level>4) {
   // generate a division be zero error, if the user request it
>   printf("%i",15/make_this_a_division_by_zero);
   make_this_a_division_by_zero &= 0xFF;
   }
:) Nice comment. The user want a bug? He get one.

prissi

But before the fatal::error xyz is printed on the screen. I think it is a pure virtaul call, since the halt was not properly removed.