[comp.sources.games.bugs] Major bug in Galactic Bloodshed

smq@ssyx.ucsc.edu (Robert Chansky) (05/26/89)

	There is a bug in Galactic Bloodshed.  It's a major one that I
can't seem to find.  

	I am running a game with 30 people on ucscb.ucsc.edu, and a few
turns into it one person's planet, for some reason, got written over
someone else's.  The map of the affected planet looks like this:

 (sector map file position 6944)
   000000000011111111112222222222333333333  Sects owned: 45
   012345678901234567890123456789012345678  Aliens: 4
 0 ##-####.xx##########.####-####-.##---##| Combat readiness:  1
 1 -.#.#..xxxx.%#.---^^-##....-#--...##.--| Compatibility:   98.00
 2 ..#..xx%xx%%%%%^.--^-##..-.--^^.-.#-...|
 3 ..#..%V%%%-.%.----.--#.....-..-...#...^| Resource stockpile:296
 4 --^^^^^%%^^^??^-^^-??--^-??-^^-%^^^^^-^| Fuel stockpile:    262
 5 ^^....%%%%%.%---.-.-..-.--...........-.| Destruct cap:      79
 6 ......xx%%%%%%%..------.--......-....-.| Total Population:  10060 (12442)
 7 .-...xxXXX..%...-..---..-^.............|
 8 ........xx...#...#--.....-...#.........|
 9 #...##-.xX.###.###^-....##...##.##.##.#|
10 ##.##-##x.-###.######.############.####|


as you can see something seems to have happened across it's middle there.
The errant map corresponds to this other planet: (owned by another player)

(sector map position 8184)
   000000  Sects owned: 7
   012345  Aliens:(none)
 0 ^--^^^| Combat readiness:  5
 1 ^^%%^^| Compatibility:   88.00(TOXIC)
 2 ^XX^-^|
 3 ^-xX--| Resource stockpile:67
 4 ^-XX-^| Fuel stockpile:    22
 5 ^-%^^^| Destruct cap:      0
 6 ^^-^^^| Total Population:  206 (20)

the sector map position for this planet (asteroid, actually) has been
rewritten onto the first planet's map.  Somehow the map position integer
got changed during the time it was doing a turn, and since this is never
changed in the programming it's a memory error.  It strikes me as a 
coincidence that the new sector map could be in perfect alignment with the
old (there are 8 bytes to a sector, so if the file pointer really was
randomized, it seems to me, it would have a 1/8 chance of being in alignment).

	What I want to know is this: Is there a debugger that can trace
memory locations so I can find out what's causing this problem?  We have
dbx, but it does a rather poor job of tracing, and can't do this kind
of trace at all.  What I'd really like is a C interpreter that actually
does some array bounds checking of some sort.

	Does anyone know how I can get something that does this?