Приложение не запускается в отладчике - PullRequest
8 голосов
/ 23 января 2010

Приложение, с которым я работаю, не запускается в отладчике Visual Studio 2005.

Вот что я делаю:

  • Я перестраиваю приложение и нажимаю F5, чтобы запустить его
  • В заголовке окна VS2005 указано «имя проекта (выполняется) ...»
  • Кнопки отладчика появляются, но неактивны
  • Приложение отображается в диспетчере задач Windows, но оно использует только 80 КБ памяти
  • В течение долгого времени ничего не происходит, и, наконец, я получаю окна со следующим сообщением об ошибке: "Отладка остановлена, но еще не завершена. Вы можете принудительно прекратить отладку, но любой отсоединяемый процесс может вместо этого будет закрыто. Это окно автоматически закроется, когда отладка полностью остановится ". Окно не исчезает, поэтому через некоторое время я нажимаю кнопку «Стоп сейчас».
  • Некоторое время ничего не происходит (кнопки отладчика все еще видны, но серые)
  • Через некоторое время появляется новое окно: «Невозможно запустить программу» (путь к exe). Последнее предложение на шведском означает «OLE отправил запрос и ожидает ответа». Я нажимаю ОК, и кнопки отладчика исчезают.
  • Приложение все еще работает, и все еще использует только 80 КБ памяти.
  • Я пытаюсь завершить процесс с помощью диспетчера задач, но он не убивается.
  • Я вышел из Visual Studio и, наконец, процесс завершен.

Приложение представляет собой неуправляемый проект C ++, который использует множество DLL-файлов в качестве плагинов. Я использую среду многопоточной отладки и убедился, что все зависимости скомпилированы для одной и той же среды.

Именно при этом эта проблема появилась внезапно. Я пытался отменить свои изменения, но это не помогает. Перезагрузка компьютера тоже не помогает.

У меня приложение запускается один или два раза в случайном порядке. Если я затем закончил приложение и запустил его снова, оно не запустилось. Так что я не думаю, что это из-за моей конфигурации.

Есть идеи?

Еще одно замечание: приложение запускается и работает так, как должно, если я запускаю его из-за пределов Visual Studio.

Ответы [ 2 ]

2 голосов
/ 23 января 2010

Похоже на неправильную работу DllMain () в одной из неявно связанных DLL, используемых вашей программой Вы можете получить подсказку из окна «Вывод», в котором перечислены имена библиотек DLL по мере их загрузки. Если это wininet.dll, то вы попали в тупиковую ловушку с сервером символов.

1 голос
/ 25 января 2010

Хорошо, я решил свою проблему, но понятия не имею, как.

Одна вещь, которую я попробовал, это удалить все файлы сборки и файлы exe и dll, а затем перекомпилировать все. Но это не помогло.

Затем я попробовал одну случайную вещь: плагины были в том же решении. Поэтому я удалил их и попытался снова запустить. И на этот раз это сработало! Итак, я добавил все плагин-проекты обратно, и он все еще работает!

Так что, думаю, я никогда не узнаю, что случилось. Но удаление и добавление проекта в решение может решить проблему кого-то еще ...:)

...