Many common problems found when going from Debug to Release are related to variables: uninitialized variables, unterminated strings, improperly or insufficiently allocated memory for strings, structures, or arrays, etc. The Debug configuration is much more forgiving than the Release configuration.
You need to get an idea on where your Release program is crashing, then take a close look at the variables in that area.
You can keep track of how far your program got by using printf statements, status messages in a text box on your UIR, messages appended to a file, etc.