我可以使用FSI调试我的代码吗?

时间:2017-07-28 22:00:01

标签: debugging f# fsi

是否可以使用断点或System.Diagnostics.Debugger.Launch()之类的命令来运行我的.fs文件,以便我可以使用FSI检查值,将函数应用于它们,绘制它们,等?

我知道之前已经问过这个问题,但我尝试了答案而无法使它们发挥作用。明确的说明或解释过程的文章链接不仅对我自己有很大帮助,而且我相信对所有初学者都有帮助。

2 个答案:

答案 0 :(得分:1)

要获得一个断点,在visual studio或visual studio代码中,只需单击要设置断点的行号左侧。这是.fs文件中非常受支持的功能。

答案 1 :(得分:1)

不幸的是,你无法击中断点并跳入FSI。正在运行的.NET程序的上下文与交互式FSI会话的上下文完全不同,并且它们不兼容,只能在一个或另一个之间切换。我可以从其他动态/解释语言(如JavaScript,Python等)中理解这种调试的期望。这是一个非常强大的功能。

正如您已经注意到的,您可以使用VS立即窗口,但您需要使用其类似C#的语法并遵守其限制。此外,由于它不是F#,您需要了解F#到.NET的转换才能充分利用它。

如果您在项目中使用Paket进行依赖关系管理,则还有另一种选择:将generate_load_scripts: true添加到paket.dependencies。这将为您提供类似.paket\load\net452\main.group.fsx的文件,您可以将其加载到FSI中以获取项目的所有依赖项。但是,您仍然负责加载自己的源文件并构建类似于所需断点处的状态。