10

Я работаю над проектом библиотеки классов C# .NET в VS2010. В настройках моего проекта -> параметры отладки у меня есть проект, чтобы запустить внешнюю программу (C: \ Windows \ SysWOW64 \ wscript.exe), которая запускает очень простой файл jscript (test.js). Скрипт просто создает экземпляр класса и вызывает один из его методов.Почему отладчик VS2010 не останавливается на моих контрольных точках?

Проблема заключается в том, когда я начинаю отладку, VS2010 не останавливается ни на одной из моих точек останова. Если я открою тот же самый проект в VS2008, он остановится в точках останова. Есть ли где-то новая настройка, которая предотвращает попадание точек останова? Кто-нибудь еще столкнулся с этой проблемой?

+0

У вас есть символы, и вы уверены, что источник такой же, как сборка, которую вы отлаживаете? Вы перестроили? –

+0

Если я меняю источник, я вижу изменение, присутствующее на выходе. Да, я попытался восстановить. – PICyourBrain

ответ

10

Чтобы решить эту проблему путем создания файла конфигурации для приложения, которое использует компонент для отладки со следующими данными:

<?xml version="1.0"?> 
<configuration> 
    <startup> 
    <supportedRuntime version="v2.0.50727"/> 
    </startup> 
</configuration> 

С помощью этого файла вы говорите отладчик использовать правильную версию среды выполнения для отладки (кажется, отладчик использует версию 4.0 по умолчанию).

9

Мой первый чек будет отключить "Just My Code"

  • Инструменты -> Параметры
  • Debugger
  • Снимите флажок "Включить Just My Code"

Попробуйте сценарий еще раз ,

+2

Пробовал это, никакой помощи. – PICyourBrain

2

Хотя я не могу ответить, почему это происходит, я могу предоставить вам обходное решение.

  1. Включить

    using System.Diagnostics; 
    
  2. В самом начале кода (класс конструктора, например) поместить следующие строки:

    #if (DEBUG) 
           while(!Debugger.IsAttached); 
           Debugger.Break(); 
    #endif 
    
  3. Начать отладку.

  4. Инструменты меню → Присоединить к процессу
  5. Прикрепите к вашему процессу.

точка останова должна запускаться в коде. Другие точки останова также должны срабатывать.

5

У меня есть целый день, чтобы узнать, почему я не смог отладить мое консольное приложение visual studio 2012, и ответ был неловким.

Я запускал его в режиме «RELEASE».

Иногда очевидное трудно найти.

+0

Это сделало это для меня! Отладчик только остановился на ветвях в моем коде (возвращает и если заявления), что на самом деле очень логично, подумайте об этом; Это соответствует потоку управления моей программой. Переключившись в режим отладки, исправил его! – Don

0

Может быть несколько причин. Обычно это потому, что вы пытаетесь отлаживать неправильную версию.

Эти действия работают примерно в 80% случаев.

  • Получить последний код
  • Clean
  • Перестроить
  • Restart IIS
  • Попробуйте снова

Если не хорошо, перейдите в Debug> Windows> Модули и если соответствующей DLL есть, щелкните правой кнопкой мыши и загрузите символы.

Если этого нет в списке, попробуйте запустить код в любом случае. Иногда, даже если он говорит, что точка останова не будет удалена, это происходит только потому, что dll не загружается, пока вы не введете сценарий, который ему нужен. Попробуйте сценарий, который зависит от DLL, и он может просто попасть в точку останова.

О, еще одна идея, перезапустите браузер. У вас может быть что-то кэшированное из старой DLL.

0

Если причина версия неправильная среда .NET (которая была моя проблема), вместо того, чтобы создать файл конфигурации, вы можете просто выбрать правильную версию в Присоединить к процессу диалога.

В диалоговом окне, рядом с Присоединить к нажмите на Выберите и перейти от Автоматически ... для отладки этих типов кода, где вы должны проверить правильную версию ,

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

0

Для меня это было зафиксировано:

  1. Открыть свойства проекта является VS2010

  2. Goto Compile -> Расширенные опции компиляции

  3. Изменить 'Создать отладочная информация' от «None 'to' Full '

0

Проблема может быть в вашем браузере с кешированной версией страницы, с которой вы работаете. Попробуйте добавить дополнительную бессмертие лишнего запроса в вашей адресной строке браузера f.x. add? NONSENSE = 123 Это заставляет браузер использовать новую версию веб-страницы, поскольку она не знает, должна ли страница выглядеть иначе с этим Query в конце. В следующий раз используете? NONSENS = 1235.

3

Закройте IDE Visual Studio и откройте его. Теперь это сработает. Для меня это также касается той же проблемы. Я использовал этот способ, чтобы преодолеть

3

У меня был проект «Восстановленный» VS2013, который я не мог отлаживать (без символов). Наконец, я увидел, что оптимизация была проверена (Project-> Properties-> Build). Я снял флажок и перестроил. Символы загружены окончательно.Мои два цента, используйте (компилировать) Оптимизацию, когда это абсолютно необходимо.

0

У меня была проблема с неуместными точками останова в моем родном коде C++. Причина в том, что я редактировал код, поэтому некоторые строки заканчиваются кодом не \ r \ n. Это невозможно было увидеть в коде, если вы не искали \ r \ n. После вставки правильных концов линий отладчик работал.

0

Я столкнулся с подобной проблемой, но ее в проекте CLR. У меня был некоторый старый синтаксис C++ в проекте CLR. Для меня после того, как я включил «Использовать режим совместимой совместимости» в «Инструменты»> «Параметры»> «Отладка»> «Общие», он начал попадать в точки останова.

 Смежные вопросы

  • Нет связанных вопросов^_^