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

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


person Mesh    schedule 06.04.2011    source источник
comment
Обратите внимание, что после того, как был задан этот вопрос, Linqpad представила новую премиум-версию Linqpad, которая включает собственный отладчик.   -  person Brian    schedule 22.04.2015


Ответы (3)


Если вы позвоните

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

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

person Joe Albahari    schedule 06.04.2011
comment
Я только что еще раз попробовал программу на C#, подобную этой 'code'void Main() { Debugger.Launch(); интервал я = 0; Отладчик.Перерыв(); я.Дамп(); } 'code' VS запускает не в состоянии найти код. НО затем снова запустив LP, VS, затем найдите файл .cs.... - person Mesh; 06.04.2011
comment
У меня были проблемы с этим, а затем я понял, что пытаюсь подключить отладчик VS 2008 к LINQPad.exe; это должна быть версией VS, поддерживающей .NET 4+ (например, VS 2012). - person Cᴏʀʏ; 01.06.2015

  • Запустите LINQPad
  • В VS откройте Debug -> Attach to Process...
  • Выберите LINQPad.exe
  • Установите точку останова в коде, вызываемом кодом LINQPad C#, или напишите Debugger.Break() в сценарии LINQPad, где вы хотите, чтобы отладчик остановился.
  • Запустите скрипт из LINQPad и наблюдайте за волшебством.
person jornhd    schedule 04.04.2012
comment
Вы должны проверить свойство Debugger.IsAttached перед вызовом Debugger.Break(). - person Tormod; 30.09.2013

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

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