Почему моя программа работает только в режиме отладки? - PullRequest
1 голос
/ 25 августа 2010

Я использую Visual Studio 2008, с .net Framework, C ++ / CLI.Моя программа работает только в режиме отладки (даже при запуске из проводника) - но в режиме выпуска программа сообщает, что программа перестала работать.(Но если я нажимаю F5, когда он выпускает режим, он работает нормально) Все настройки идентичны.Что бы это могло быть?У кого-нибудь есть предложения, пожалуйста?

Ответы [ 3 ]

4 голосов
/ 25 августа 2010

Я знаю, что в старых версиях Visual Studio неинициализированные переменные обнулялись в режиме отладки.В режиме выпуска эти переменные могут иметь потенциально «случайные» значения.Я не знаю, происходит ли это с текущими версиями Visual Studio.

Возможно ли, что неинициализированная переменная вызывает проблемы в вашем коде?

1 голос
/ 25 августа 2010

Действительно сложно сделать общее утверждение о том, что здесь может происходить.Есть слишком много вещей, которые могут вызвать проблемы.

Лучше всего развернуть приложение в режиме выпуска, подключить отладчик и посмотреть, что это за ошибка.

0 голосов
/ 25 августа 2010

Пара идей:

  1. Если ваше приложение по-прежнему зависит от CRT, возможно, у вас возникли проблемы с его развертыванием / запуском на других компьютерах, которые не имеют правильной версии. Используйте средство обхода зависимостей, чтобы посмотреть на исполняемый файл режима выпуска, а также попробуйте выполнить профилирование с помощью средства обхода зависимостей, журнал может пролить свет на различные проблемы. www.dependencywalker.com

  2. Как уже отмечали другие, режим освобождения удаляет многие средства безопасности, которые устанавливает режим отладки. Я попытался бы включить gflags с помощью «Средства отладки для Windows» с помощью вашего исполняемого файла - и просто запустить программу в режиме отладки. Это позволит выявить целые классы проблем, которые не могут быть обнаружены с помощью обычных средств безопасности режима отладки.

  3. Наконец, если два вышеупомянутых решения не помогли, превратите настройки проекта «Отладка» в сборку релиза. Сделайте это, изменив настройки проекта, которые делают его «Отладкой», по одной настройке за раз, пока вы не найдете настройку, которая заставляет вашу проблему появляться и работать оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...