Build error: mainData is corrupted

When we built our game to a .exe and ran it some of the public variables set in scripts were not correct values. For example…
public bool DoDebug = false;
which could be checkboxed in the editor, was flipped.

We found there was a corrupt mainData file in the build data area.

Turns out we had another public volatile bool variable.
That messes Unity up completely.

The specific error in the development build (check the checkbox in the build for development mode) was…

The file '[build_dir]/[exe_name]_Data/mainData' is corrupted! Remove it and launch unity again!
[Position out of bounds! XXXXX > YYYYY]

Note: volatile is a keyword in C# that tells the compiler to not optimize variable access out. This lets us set debugger break points reliably.

Posting answer to get this out of the unanswered queue. To quote OP:

Turns out we had another public
volatile bool
variable. That messes
Unity up completely.

The specific error in the development
build (check the checkbox in the build
for development mode) was…

The file '[build_dir]/[exe_name]_Data/mainData'

is corrupted! Remove it and launch
unity again!
[Position out of bounds! XXXXX > YYYYY]

Note: volatile is a keyword in C# that
tells the compiler to not optimize
variable access out. This lets us set
debugger break points reliably.