2011-04-06 32 views
37

我可以附加调试器,并把它打破 - 但它很难找到cs文件,我认为LinqPad删除它作为构建的一部分.. 8-(如何在Visual Studio Debugger中调试LinqPad查询?

+1

请注意,在询问这个问题后,Linqpad推出了Linqpad的新版本,其中包含了它自己的调试器。 – Brian 2015-04-22 17:05:47

回答

44

如果你打电话Debugger.Launch()/Debugger.Break()启动你LINQPad脚本中的断点,LINQPad会猜测你想要使用VS调试脚本并不会删除cs文件

+1

我只是另一个去C#程序这样的'code'void Main() \t Debugger.Launch(); \t int i = 0; \t Debugger.Break(); \t i.Dump(); }'代码'VS启动无法找到代码。但是,然后再次运行从LP,VS然后找到.cs文件.... – Adrian 2011-04-06 16:05:59

+0

我遇到了麻烦,然后意识到我试图附加一个VS 2008调试器LINQPad.exe;它*具有*作为支持.NET 4 +的VS版本(如VS 2012)。 – 2015-06-01 19:59:47

24
  • 开始LINQPad
  • 在VS,打开调试 - >附加到进程...
  • 选择LINQPad.exe
  • 在LINQPad C#代码调用的代码中设置断点,或者在要让调试程序停止的LINQPad脚本中写入Debugger.Break()。
  • 从LINQPad执行脚本并观看魔术。
+2

在调用Debugger.Break()之前,您应该检查Debugger.IsAttached属性。 – Tormod 2013-09-30 16:06:09

2

如果你LINQPad代码调用一些引用的C#组件的方法,你想调试组件,在Visual Studio 2015年,这个工作对我来说:

  1. 构建解决方案。
  2. (可选)运行LINQPad脚本,使其崩溃等。在右下角的LINQPad状态栏中,注意淡蓝色的PID。
  3. 在VS中,CTRL + ALT + P附加到进程。使用您看到的PID附加到LINQPad UserQuery过程。
  4. 在VS中放置一个断点。
  5. 运行linqpad查询并弹出到VS.你应该打你的断点!