Bug#604172: lincity-ng crash (easyly reproducible)

Alain Baeckeroot alain.baeckeroot at laposte.net
Thu Dec 2 21:03:24 UTC 2010


i digged a little more this weird bug :
In attachment you'll find 
- a simple patch that fix this (or more probably a workaround)
- the backtrack from gdb (on latest svn)
	(game map is bounded by (0,0) < (x,y) < (100,100) )

I just don't understand why this bug does not happen all the time, 
and stayed hidden for so long (it appears in a very stable part of
the code, untouched for years)

I'll try to have a deeper understanding later.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch_crash_on_bulldoze_tool.diff
Type: text/x-patch
Size: 589 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-games-devel/attachments/20101202/c04444c2/attachment.bin>
-------------- next part --------------
Program received signal SIGSEGV, Segmentation fault.
0x0000000000431502 in GameView::bulldozeCost (this=0x9993e0, tile=...) at src/lincity-ng/GameView.cpp:1780
1780	    if (MP_TYPE( tile.x, tile.y) == CST_USED)
(gdb) bt
#0  0x0000000000431502 in GameView::bulldozeCost (this=0x9993e0, tile=...) at src/lincity-ng/GameView.cpp:1780
#1  0x0000000000430b7a in GameView::draw (this=0x9993e0, painter=...) at src/lincity-ng/GameView.cpp:1683
#2  0x000000000046c6fa in Component::drawChild (this=0x9ad650, child=..., painter=...) at src/gui/Component.cpp:66
#3  0x000000000046c7b9 in Component::draw (this=0x9ad650, painter=...) at src/gui/Component.cpp:81
#4  0x0000000000480c83 in Desktop::draw (this=0x9ad650, painter=...) at src/gui/Desktop.cpp:108
#5  0x0000000000434020 in Game::run (this=0x884d00) at src/lincity-ng/Game.cpp:238
#6  0x000000000040b2d1 in mainLoop () at src/lincity-ng/main.cpp:409
#7  0x000000000040bf1d in main (argc=1, argv=0x7fffffffe588) at src/lincity-ng/main.cpp:557
(gdb) p tile.x
$1 = -102
(gdb) p tile.y
$2 = -36
(gdb) p MP_TYPE(-102,-36)
Cannot access memory at address 0x70f568

More information about the Pkg-games-devel mailing list