Кто-нибудь сталкивался с VS2008 (включая SP1), случайным образом игнорирующим или теряющим точки останова?

После обновления до 2008 года я и многие здесь заметили, что VS больше не будет случайно вмешиваться в код или перепрыгивать через точки останова. Дошло до стадии, когда отладка становится настоящей рутиной. Мы используем SP1, но заметили проблему и на 2008 basic.

В ответ на вопрос Роберта: мы размещаем службы WCF и удаленного взаимодействия внутри служб Windows. По сути, вызовы от клиентов (обычно Windows exe) будут попадать в поток самой службы и в нашем коде (в отличие от удаленного взаимодействия или инфраструктуры WCF). Попав в наш код, точки останова имеют такое поведение.

Большая часть отладки, которую мы здесь выполняем, выполняется в служебном коде, поэтому ATTACH для обработки бесценно, а иногда невозможно достичь необходимого состояния, кроме как путем подключения к процессам после их запуска. Это случается с разработчиками как с такими расширениями, как resharper, так и с теми, кто использует ванильную VS.

Поиск в Google не очень помогает.

Кто-нибудь еще испытывает это?

С уважением, Прит


Ответ Спудло нам очень помог. Спасибо. Загрузите исправление со страницы MSDN


person Preet Sangha    schedule 14.11.2008    source источник
comment
Только когда вы отлаживаете сервисы или другие типы проектов?   -  person Stefan    schedule 14.11.2008
comment
иногда другие, но в основном это службы, так как это то, что мы так часто отлаживаем.   -  person Preet Sangha    schedule 14.11.2008
comment
Что вы подразумеваете под Сервисным кодом? WCF, WS или служба Windows?   -  person Robert Wagner    schedule 14.11.2008
comment
Мы размещаем службы WCF и удаленного взаимодействия внутри служб Windows. По сути, вызовы от клиентов (обычно Windows exe) будут попадать в поток самой службы и в нашем коде (в отличие от удаленного взаимодействия или инфраструктуры WCF). Попав в наш код, точки останова имеют такое поведение   -  person Preet Sangha    schedule 14.11.2008
comment
Возможно, начать отладку в VS можно обойти. Увидеть ниже.   -  person Robert Wagner    schedule 16.11.2008
comment
Это сток VS2008 или VS2008 SP1?   -  person Powerlord    schedule 16.11.2008
comment
@Р. Бенроуз Он действительно упоминает, что это происходит на обоих.   -  person Robert Wagner    schedule 16.11.2008


Ответы (4)


Вот сообщение в блоге со ссылкой на патч.

person Community    schedule 18.11.2008
comment
Здесь есть дополнительная информация: social.technet.microsoft.com/Forums/en-US/vsdebug/thread/ - person Preet Sangha; 19.11.2008

Да, когда я забыл переключиться с RELEASE на DEBUG. ;)

Всегда сводит меня с ума, прежде чем я осознаю свою глупость.

person Stefan    schedule 14.11.2008

Что нужно проверить:

  • Находится ли ваш PDB в том же каталоге, что и dll вашего приложения?
  • Это отладочные сборки?
  • Также отличается ли путь к источнику?
  • Загружаются ли DLL при подключении (проверьте консоль вывода)?
  • Точка останова отображается в VS как полый (незакрашенный) круг? Если это так, наведите указатель мыши на точку останова, и он скажет вам, почему он не может установить точку останова.

Возможно, в качестве обходного пути вы можете запустить службу из VS. Если вы измените приложение на консольное приложение и добавите основной метод, который вызывает метод OnStart (точно так же, как это сделала бы служба Windows). Вы по-прежнему можете установить приложение как службу Windows, а также запустить его прямо из VS:

public static void Main(string[] args)
{
    if (Environment.UserInteractive)
    {
        Console.WriteLine("Starting service...");
        Service1 svc = new Service1();
        svc.OnStart(args);
        Console.WriteLine("Started");
        Console.WriteLine("");
        Console.WriteLine("Press any key to stop");
        Console.Read();
        Console.WriteLine("Stopping...");
        svc.OnStop();
        Console.WriteLine("Stopped, Press any key to exit");
        Console.Read();
    }
    else
    {
        ServiceBase.Run(new Service1());
    }
}
person Robert Wagner    schedule 14.11.2008
comment
Да, да, нет, да, нет. Все ок. Первая точка останова сработает нормально, но затем вмешательство может не работать или работать. Тогда другой БП не остановится, или может. - person Preet Sangha; 14.11.2008

Мы видели проблемы BP с SP1. Мы сообщили об этом Conenct (https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=363453), и с тех пор MS отправила нам DLL, чтобы исправить это (похоже, работает). Я ожидаю, что MS скоро выпустит патч.

Поскольку у вас есть проблемы без SP1, это может помочь, а может и не помочь

person GregUzelac    schedule 15.11.2008
comment
Спасибо тебе за это. Выглядит неплохо, но я просто жду и отвечаю на 64/32-битный вопрос, который я опубликовал о патче blogs.msdn.com/jacdavis/archive/2008/11/14/ - person Preet Sangha; 19.11.2008