这是crafty程序中一段源程序:
void _init() {
int delta;
int x, y;
int dist, tmp;
// Distance[]
for (delta = 0; delta < DeltaNb; delta++) Distance[delta] = -1;
for (y = -8; y <= +8; y++) {
for (x = -9; x <= +9; x++) {
delta = y * 16 + x;
assert(delta_is_ok(delta));
dist = 0;
tmp = x;
if (tmp < 0) tmp = -tmp;
if (tmp > dist) dist = tmp;
tmp = y;
if (tmp < 0) tmp = -tmp;
if (tmp > dist) dist = tmp;
Distance[DeltaOffset+delta] = dist;
}
}
}
这段程序有个致命错误.
与assert(delta is ok(delta))相互矛盾.把ollydebug调试器设置成即时加载后,程序在运行中断后便自动停在
for (y = -8; y <= +8; y++) {
这一行....