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

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

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

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

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

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

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


Ответ Спудло очень сработал для нас. Спасибо. Пожалуйста, загрузите исправление с MSDN

Ответы [ 4 ]

2 голосов
/ 18 ноября 2008

Здесь - это запись в блоге со ссылкой на патч.

2 голосов
/ 14 ноября 2008

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

  • Ваша PDB находится в той же директории, что и dll вашего приложения?
  • Это отладочные сборки?
  • Также отличается путь к источнику?
  • Загружается ли Dlls при подключении (проверьте консоль вывода)?
  • Точка разрыва отображается как полый (не залитый) круг в 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());
    }
}
2 голосов
/ 14 ноября 2008

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

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

1 голос
/ 16 ноября 2008

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

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

...