Почему отладчик VS2010 не останавливается на моих точках останова? - PullRequest
11 голосов
/ 24 августа 2010

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

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

Ответы [ 12 ]

10 голосов
/ 09 марта 2011

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

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

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

10 голосов
/ 24 августа 2010

Моей первой проверкой будет отключение «Просто мой код»

  • Инструменты -> Параметры
  • Отладчик
  • Снимите флажок «Включить только мой код»

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

5 голосов
/ 19 декабря 2012

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

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

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

3 голосов
/ 04 сентября 2015

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

3 голосов
/ 16 апреля 2015

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

2 голосов
/ 24 августа 2010

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

  1. Включить

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

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

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

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

0 голосов
/ 21 июля 2016

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

0 голосов
/ 31 марта 2016

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

0 голосов
/ 24 ноября 2014

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

0 голосов
/ 21 августа 2013

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

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

  2. Перейти к компиляции -> Дополнительные параметры компиляции

  3. Изменить 'Создать информацию отладки' с 'Нет' на 'Полная'

...