Предполагая, что вы работаете в VS, выберите «Отладка-> Исключения» и нажмите «Прервать при возникновении исключения».
Запустите приложение в отладчике и посмотрите, почему возникает это исключение и на что оно жалуется - скорее всего, это что-то другое в среде, в которой работает приложение.
Если вам нужно проверить переменные, то сборка выпуска усложняет задачу, поскольку оптимизатор, вероятно, сбивает отладчик с толку. Вероятно, вы можете решить эту проблему, отключив оптимизацию в вашей сборке выпуска. Однако, если это проблема времени, это может скрыть проблему.
Другой вариант - перехватить возникшее исключение и затем записать его внутреннее сообщение - обычно это функция под названием «what ()» или аналогичная. Это, скорее всего, укажет вам на настоящую проблему. Вполне вероятно, что вы все равно захотите поймать это исключение.
Если его неопределенное поведение вызывает разницу между Release и Debug, то, вероятно, вышеупомянутое не будет так широко использоваться.
person
Mike Vine
schedule
20.05.2013
open()
как строку, которая уже вызывалась с указанными параметрами. По сути, вы открываете, закрываете и снова открываете файл прямо сейчас. - person Niko   schedule 20.05.2013