当我在从lambda表达式调用的方法中设置断点时,断点永远不会命中。当我将方法调用移到lambda之外时,断点命中。
例如:
Function IncrementAll(ByVal items As IEnumerable(Of Integer)) As IEnumerable(Of Integer)
Return items.Select(Function(i) Increment(i))
End Function
Function Increment(ByVal i As Integer) As Integer
Return i + 1 'Breakpoint here
我下载了VS2008集成shell,F# Feb CTP和我的F#环境工作得很好。当我尝试调试时,问题就出现了。什么都没发生。输出窗口显示
我的断点都没被击中。我的“程序”非常简单
#light
open System
printfn "Hello World"
Console.ReadKey(true)
在printfn和控制台行上有断点。我所读到的内容似乎表明,调试将适用于此设置,并且在common7/packages下有一个调试器文件夹,其中包含文件。谢谢你的帮助。
编辑:我在Win7 64位
我使用的是Visual Studio2008,我注意到在调试模式下,如果字符串是通过引用方法传递的,那么在命中断点时,鼠标悬停不会显示字符串的内容,而不是通过引用传递的字符串可以正常工作。你知道如何在调试模式下读取断点处的字符串内容吗?我正在使用VS2008
For example
void myfunct(std::string& val)
{
--->breakpoint here - hover over val variable will not display value
}
然而,
void myfunct(std::string val)
{
--->
我使用的是visual studio 2008 (32位。我的机器是64位的)。我已经构建了一个windows forms EXE应用程序。现在,我想将进程附加到visual studio中,这样当我从项目的Debug/Release文件夹运行EXE时,它应该命中我在代码中设置的断点,该断点当前在visual studio 2008中打开。
我可以看到有一个名为MyApplicationName.vshost.exe的进程,但是attach按钮是灰色的。
我想调试EXE的原因是,我想在运行时调试EXE。当我从Debug/Release文件夹运行EXE时,我得到了一个异常,但是当我运行代码时,我