如何在Visual Studio中调试F#时设置条件断点

时间:2016-12-12 21:35:20

标签: visual-studio-2015 f#

考虑一下:

let hank = "hank"
let bill = "bill"
printfn "%A" hank  // for breakpoint

现在,如果我在VS2015中设置条件断点,条件为“hank = bill”(假设F#表达式),我收到以下错误:

断点的条件无法执行。条件是 'hank = bill'。返回的错误是'断点条件必须 求值为布尔运算'。

当条件是“hank == bill”(也许尝试C#表达式?)时,错误是:

断点的条件无法执行。条件是 'hank == bill'。返回的错误是'运行时已拒绝 此时评估表达式。'。

1 个答案:

答案 0 :(得分:4)

调试器对断点中的条件使用C#语法(据我所知,在Visual Studio的所有F#版本中),因此要使用的表达式是hank == bill。我确实在F#和VS 2015中使用了条件断点 - 对可能有用的东西有各种各样的想法:

  • 我认为当你做太多事情时,调试器有时会开始表现得很奇怪。您是否尝试在重新启动调试器后以第二种方式设置断点?

  • 有时,在let上立即设置断点有点奇怪(编译后的代码首先将变量初始化为defaultof<'T>)。您可以尝试添加一些像printfn "test"这样的无操作语句并在其上设置条件断点吗?