Sun 19 Oct 2008 11:33:17 PM UTC, original submission:
in the savegame attached i placed an inn when it crashed. this was reoroducable.
[New Thread 0x426ae950 (LWP 17230)]
[New Thread 0x41607950 (LWP 17231)]
- Loading data/usl/Language/Runtime/If.usl
val true := [
def select (ifTrue, _) := ifTrue
def not := false
def and(that) := that
def or (_) := true
def xor (that) := that select (false, true)
]
val false := [
def select (_, ifFalse) := ifFalse
def not := true
def and (that) := false
def or (that) := that
def xor (that) := that select (true, false)
]
0:0: ExecutionBlock
7:2: DecNode(true,2)
1:13: RecordBlock
2:34: DecNode(select,1)
2:34: FunNode
2:13: TuplePatternNode
2:14: ValPatternNode(ifTrue)
2:22: IgnorePatternNode
2:28: DefLookupNode(ifTrue)
3:18: DecNode(not,1)
3:13: DefLookupNode(false)
4:23: DecNode(and,1)
4:23: FunNode
4:10: ValPatternNode(that)
4:19: DefLookupNode(that)
5:20: DecNode(or,1)
5:20: FunNode
5:10: IgnorePatternNode
5:16: DefLookupNode(true)
6:45: DecNode(xor,1)
6:45: FunNode
6:11: ValPatternNode(that)
6:25: ApplyNode
6:25: SelectNode(select)
6:20: DefLookupNode(that)
6:32: RecordBlock
6:33: DefLookupNode(false)
6:40: DefLookupNode(true)
15:2: DecNode(false,2)
9:14: RecordBlock
10:36: DecNode(select,1)
10:36: FunNode
10:13: TuplePatternNode
10:14: IgnorePatternNode
10:17: ValPatternNode(ifFalse)
10:29: DefLookupNode(ifFalse)
11:17: DecNode(not,1)
11:13: DefLookupNode(true)
12:25: DecNode(and,1)
12:25: FunNode
12:11: ValPatternNode(that)
12:20: DefLookupNode(false)
13:23: DecNode(or,1)
13:23: FunNode
13:10: ValPatternNode(that)
13:19: DefLookupNode(that)
14:45: DecNode(xor,1)
14:45: FunNode
14:11: ValPatternNode(that)
14:25: ApplyNode
14:25: SelectNode(select)
14:20: DefLookupNode(that)
14:32: RecordBlock
14:33: DefLookupNode(true)
14:39: DefLookupNode(false)
Scope(0x2372f20)
- Loading data/usl/Language/Runtime/Classes.usl
def abstract := () \# TODO: throw an exception
def interface(singleton) := singleton.prototype
0:0: ExecutionBlock
2:1: DecNode(abstract,1)
1:17: ConstNode Value(0xaec400)
3:48: DecNode(interface,1)
3:48: FunNode
3:15: ValPatternNode(singleton)
3:48: SelectNode(prototype)
3:29: DefLookupNode(singleton)
Value(0xaec400)
- Loading data/usl/Language/Runtime/Control.usl
def if (cond) := {
def ifTrue (trueVal) := [
def else(_) := trueVal
]
def ifFalse (_) := [
def else(falseVal) := falseVal
]
cond select (ifTrue, ifFalse)
}
def while (cond) (def body) := {
if (cond) {
body
while (cond) (body)
}
}
0:0: ExecutionBlock
9:2: DecNode(if,1)
9:2: FunNode
1:9: ValPatternNode(cond)
1:18: ExecutionBlock
4:3: DecNode(ifTrue,1)
4:3: FunNode
2:14: ValPatternNode(trueVal)
2:26: RecordBlock
3:25: DecNode(else,1)
3:25: FunNode
3:12: IgnorePatternNode
3:18: DefLookupNode(trueVal)
7:3: DecNode(ifFalse,1)
7:3: FunNode
5:15: IgnorePatternNode
5:21: RecordBlock
6:33: DecNode(else,1)
6:33: FunNode
6:12: ValPatternNode(falseVal)
6:25: DefLookupNode(falseVal)
8:7: ApplyNode
8:7: SelectNode(select)
8:2: DefLookupNode(cond)
8:14: RecordBlock
8:15: DefLookupNode(ifTrue)
8:23: DefLookupNode(ifFalse)
16:2: DecNode(while,1)
16:2: FunNode
11:12: ValPatternNode(cond)
16:2: FunNode
11:19: DefPatternNode(body)
11:32: ExecutionBlock
15:3: ApplyNode
12:12: ApplyNode
12:2: DefLookupNode(if)
12:6: DefLookupNode(cond)
12:12: ExecutionBlock
13:3: DefLookupNode(body)
14:22: ApplyNode
14:16: ApplyNode
14:3: DefLookupNode(while)
14:10: DefLookupNode(cond)
14:17: DefLookupNode(body)
Value(0xaec400)
- Loading data/usl/Glob2/Runtime/Game.usl
\# wrappers around native interface to get shorter calls
\# units getter
def Worker := 0
def Explorer := 1
def Warrior := 2
def unitsCount := game.unitsCount
def AbilityWalk := 3
def AbilitySwim := 4
def AbilityFly := 5
def AbilityBuild := 6
def AbilityHarvest := 7
def AbilityAttackSpeed := 8
def AbilityAttackStrength := 9
def AbilityMagicAttackAir := 10
def AbilityMagicAttackGround := 11
def unitsUpgradeCount := game.unitsUpgradesCount
\# buildings getter
def Swarm := 0
def Inn := 1
def Hospital := 2
def Racetrack := 3
def Pool := 4
def Camp := 5
def School := 6
def Tower := 7
def Wall := 11
def Level0Construction := 0
def Level0Completed := 1
def Level1Construction := 2
def Level1Completed := 3
def Level2Construction := 4
def Level2Completed := 5
def buildingsCount := game.buildingsCount
\# general team getter
def teamsCount := game.teamsCount
def isAlive := game.isTeamAlive
\# general game getter
\# game gui
def show := gameGUI.showScriptText
def showTr := gameGUI.showScriptTextTr
def hide := gameGUI.hideScriptText
\# wait on game variables
def wait(x) := if (x > 0) {
yield()
wait(x - 1)
}
0:0: ExecutionBlock
6:16: DecNode(Worker,1)
6:15: ConstNode NativeValue<i>(0xac67e0) = 0
7:18: DecNode(Explorer,1)
7:17: ConstNode NativeValue<i>(0xac67e0) = 1
8:17: DecNode(Warrior,1)
8:16: ConstNode NativeValue<i>(0xac67e0) = 2
10:34: DecNode(unitsCount,1)
10:34: SelectNode(unitsCount)
10:19: DefLookupNode(game)
12:21: DecNode(AbilityWalk,1)
12:20: ConstNode NativeValue<i>(0xac67e0) = 3
13:21: DecNode(AbilitySwim,1)
13:20: ConstNode NativeValue<i>(0xac67e0) = 4
14:20: DecNode(AbilityFly,1)
14:19: ConstNode NativeValue<i>(0xac67e0) = 5
15:22: DecNode(AbilityBuild,1)
15:21: ConstNode NativeValue<i>(0xac67e0) = 6
16:24: DecNode(AbilityHarvest,1)
16:23: ConstNode NativeValue<i>(0xac67e0) = 7
17:28: DecNode(AbilityAttackSpeed,1)
17:27: ConstNode NativeValue<i>(0xac67e0) = 8
18:31: DecNode(AbilityAttackStrength,1)
18:30: ConstNode NativeValue<i>(0xac67e0) = 9
19:32: DecNode(AbilityMagicAttackAir,1)
19:30: ConstNode NativeValue<i>(0xac67e0) = 10
20:35: DecNode(AbilityMagicAttackGround,1)
20:33: ConstNode NativeValue<i>(0xac67e0) = 11
22:49: DecNode(unitsUpgradeCount,1)
22:49: SelectNode(unitsUpgradesCount)
22:26: DefLookupNode(game)
26:15: DecNode(Swarm,1)
26:14: ConstNode NativeValue<i>(0xac67e0) = 0
27:13: DecNode(Inn,1)
27:12: ConstNode NativeValue<i>(0xac67e0) = 1
28:18: DecNode(Hospital,1)
28:17: ConstNode NativeValue<i>(0xac67e0) = 2
29:19: DecNode(Racetrack,1)
29:18: ConstNode NativeValue<i>(0xac67e0) = 3
30:14: DecNode(Pool,1)
30:13: ConstNode NativeValue<i>(0xac67e0) = 4
31:14: DecNode(Camp,1)
31:13: ConstNode NativeValue<i>(0xac67e0) = 5
32:16: DecNode(School,1)
32:15: ConstNode NativeValue<i>(0xac67e0) = 6
33:15: DecNode(Tower,1)
33:14: ConstNode NativeValue<i>(0xac67e0) = 7
34:15: DecNode(Wall,1)
34:13: ConstNode NativeValue<i>(0xac67e0) = 11
36:28: DecNode(Level0Construction,1)
36:27: ConstNode NativeValue<i>(0xac67e0) = 0
37:25: DecNode(Level0Completed,1)
37:24: ConstNode NativeValue<i>(0xac67e0) = 1
38:28: DecNode(Level1Construction,1)
38:27: ConstNode NativeValue<i>(0xac67e0) = 2
39:25: DecNode(Level1Completed,1)
39:24: ConstNode NativeValue<i>(0xac67e0) = 3
40:28: DecNode(Level2Construction,1)
40:27: ConstNode NativeValue<i>(0xac67e0) = 4
41:25: DecNode(Level2Completed,1)
41:24: ConstNode NativeValue<i>(0xac67e0) = 5
43:42: DecNode(buildingsCount,1)
43:42: SelectNode(buildingsCount)
43:23: DefLookupNode(game)
47:34: DecNode(teamsCount,1)
47:34: SelectNode(teamsCount)
47:19: DefLookupNode(game)
48:32: DecNode(isAlive,1)
48:32: SelectNode(isTeamAlive)
48:16: DefLookupNode(game)
56:35: DecNode(show,1)
56:35: SelectNode(showScriptText)
56:13: DefLookupNode(gameGUI)
57:39: DecNode(showTr,1)
57:39: SelectNode(showScriptTextTr)
57:15: DefLookupNode(gameGUI)
58:35: DecNode(hide,1)
58:35: SelectNode(hideScriptText)
58:13: DefLookupNode(gameGUI)
66:2: DecNode(wait,1)
66:2: FunNode
63:10: ValPatternNode(x)
66:2: ApplyNode
63:27: ApplyNode
63:16: DefLookupNode(if)
63:22: ApplyNode
63:22: SelectNode(>)
63:20: DefLookupNode(x)
63:24: ConstNode NativeValue<i>(0xac67e0) = 0
63:27: ExecutionBlock
64:9: ApplyNode
64:2: DefLookupNode(yield)
64:7: ConstNode Value(0xaec400)
65:13: ApplyNode
65:2: DefLookupNode(wait)
65:9: ApplyNode
65:9: SelectNode(-)
65:7: DefLookupNode(x)
65:11: ConstNode NativeValue<i>(0xac67e0) = 1
Value(0xaec400)
0:0: ExecutionBlock
Value(0xaec400)
- USL executed 1 steps
- USL executed 0 steps
- USL executed 0 steps
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f6915b6f730 (LWP 17226)]
0x0000000000721532 in GAGCore::DrawableSurface::_drawHorzLine (this=0x220cd80, x=608, y=320, l=32, color=@0x7fff23e57810) at libgag/src/GraphicContext.cpp:743
743 *mem++ = colorValue;
(gdb) bt
#0 0x0000000000721532 in GAGCore::DrawableSurface::_drawHorzLine (this=0x220cd80, x=608, y=320, l=32, color=@0x7fff23e57810) at libgag/src/GraphicContext.cpp:743
#1 0x00000000007252b4 in GAGCore::GraphicContext::drawHorzLine (this=0x220cd80, x=608, y=320, l=32, color=@0x7fff23e57810) at libgag/include/SDLGraphicContext.h:386
#2 0x00000000004cb9d9 in Game::drawMapArea (this=0x7fff23e5ca88, left=0, top=0, right=50, bot=32, sw=1600, sh=1024, viewportX=22, viewportY=79, localTeam=0, drawOptions=13, map=0x7fff23e5db20,
mapIs=0x4cecba <Map::isForbiddenLocal(int, int)>, areaAnimationTick=90, baseFrame=16, c=
{r = 255 '�', g = 0 '\0', b = 0 '\0', a = 255 '�', static black = {r = 0 '\0', g = 0 '\0', b = 0 '\0', a = 255 '�', static black = <same as static member of an already seen type>, static white = {r = 255 '�', g = 255 '�', b = 255 '�', a = 255 '�', static black = <same as static member of an already seen type>, static white = <same as static member of an already seen type>}}, static white = <same as static member of an already seen type>}) at src/Game.cpp:2329
#3 0x00000000004cbcd6 in Game::drawMapAreas (this=0x7fff23e5ca88, left=0, top=0, right=50, bot=32, sw=1600, sh=1024, viewportX=22, viewportY=79, localTeam=0, drawOptions=13) at src/Game.cpp:2280
#4 0x00000000004c0a78 in Game::drawMap (this=0x7fff23e5ca88, sx=0, sy=0, sw=1600, sh=1024, viewportX=22, viewportY=79, localTeam=0, drawOptions=13, visibleBuildings=0x7fff23e57a80) at src/Game.cpp:2758
#5 0x00000000004e5f80 in GameGUI::drawAll (this=0x7fff23e5ca10, team=0) at src/GameGUI.cpp:3999
#6 0x00000000004b42e4 in Engine::run (this=0x7fff23e5ca10) at src/Engine.cpp:391
#7 0x000000000051649d in Glob2::run (this=0x7fff23e622af, argc=1, argv=0x7fff23e62388) at src/Glob2.cpp:317
#8 0x00000000005168a1 in main (argc=1, argv=0x7fff23e62388) at src/Glob2.cpp:421
|