Может, особенно если вы находитесь в мире C.
Одной из причин может быть то, что версия DEBUG может добавить код для проверки на наличие ошибочных указателей и каким-то образом защитить ваш код от сбоев (или некорректного поведения). Если это так, вы должны тщательно проверить предупреждения и другие сообщения, которые вы получаете от вашего компилятора.
Другой причиной может быть оптимизация (которая обычно включена для версий выпуска и отключена для отладки). Возможно, код и структура данных были оптимизированы, и в то время как ваша программа отладки, например, только что обращалась к неиспользуемой памяти, версия выпуска теперь пытается получить доступ к зарезервированной памяти или даже указывает на код!
РЕДАКТИРОВАТЬ: я вижу другие упоминал это: конечно, вы могли бы иметь целые разделы кода, которые условно исключены, если не компилируются в режиме отладки. Если это так, я надеюсь, что это действительно отладочный код, а не что-то жизненно важное для правильности самой программы!