Как отладить запрос LINQPad в отладчике Visual Studio?

#visual-studio #debugging #linqpad

#visual-studio #отладка #linqpad

Вопрос:

Я могу подключить отладчик и заставить его прерваться — но у него проблемы с поиском файла .cs, я думаю, LINQPad удаляет его как часть своей сборки .. 8-(

Комментарии:

1. Обратите внимание, что после того, как был задан этот вопрос, Linqpad представила новую, премиум-версию Linqpad, которая включает в себя собственный отладчик.

Ответ №1:

Если вы вызываете

 Debugger.Launch();
Debugger.Break(); 
  

чтобы инициировать точку останова в вашем скрипте LINQPad, LINQPad догадается, что вы хотите использовать VS для отладки вашего скрипта, и не удалит файл .cs.

Комментарии:

1. Я только что еще раз попробовал программу на C #, подобную этой ‘code ‘ void Main() { Debugger. Запустите(); int i = 0; Отладчик. Break(); i.Dump(); }’code’ VS launches не удается найти код. НО затем снова запускаем из LP, VS затем находим файл .cs….

2. У меня возникли проблемы с этим, затем я понял, что пытаюсь подключить отладчик VS 2008 к LINQPad.exe ; это должна быть версия VS, поддерживающая .NET 4 (например, VS 2012).

Ответ №2:

  • Запустите LINQPad
  • В VS откройте Debug -> Присоединить к процессу…
  • Выберите LINQPad.exe
  • Установите точку останова в вашем коде, вызываемом LINQPad C # code, или напишите Debugger.Break() в вашем скрипте LINQPad, где вы хотите остановить отладчик.
  • Запустите скрипт из LINQPad и понаблюдайте за волшебством.

Комментарии:

1. Вы должны проверить Debugger. Свойство IsAttached перед вызовом Debugger. Break().

Ответ №3:

Если ваш код LINQPad вызывает метод в некоторой сборке C #, на которую ссылается ссылка, и вы хотите отладить эту сборку в Visual Studio 2015, у меня это сработало:

  1. Создайте свое решение.
  2. При необходимости запустите свой скрипт LINQPad, дайте ему аварийно завершиться и т.д. В нижней правой строке состояния LINQPad обратите внимание на PID, выделенный светло-синим цветом.
  3. В VS нажмите CTRL ALT P, чтобы подключиться к процессу. Подключитесь к процессу LINQPad UserQuery с помощью PID, который вы видели.
  4. Поместите точку останова здесь, в VS.
  5. Запустите запрос linqpad и перейдите в VS. Вы должны нажать свою точку останова!