Visual Studio中F#调用堆栈的问题
看来F#调试器在VS 2015中无法正常工作。让我在简单的控制台程序上进行说明:Visual Studio中F#调用堆栈的问题,f#,visual-studio-debugging,F#,Visual Studio Debugging,看来F#调试器在VS 2015中无法正常工作。让我在简单的控制台程序上进行说明: let f1 = printf "hello 1" printf "hello 2" //1 [<EntryPoint>] let main argv = f1 //2 0 f1= printf“你好1” printf“你好2”//1 [] 让主argv= f1//2 0 我在第//1行和第//2行设置断点,然后启动调试器 第一个被击中的BP是//1,而它应该是
let f1 =
printf "hello 1"
printf "hello 2" //1
[<EntryPoint>]
let main argv =
f1 //2
0
f1=
printf“你好1”
printf“你好2”//1
[]
让主argv=
f1//2
0
我在第//1行和第//2行设置断点,然后启动调试器
第一个被击中的BP是//1,而它应该是//2。为什么呢
同时,此时我无法导航到调用堆栈的最顶层。也就是说,当我双击callstack条目时,它会将我导航到第//2行,VS会告诉我“源不可用”。为什么呢
这两个问题并没有阻止我调试,但却让我非常不高兴
第一个被击中的BP是//1,而它应该是//2。为什么呢
f1
不是函数,而是单位类型的值。因此,它的值将在调用main
之前构造。您会注意到,如果多次调用f1
,它只打印一次,因为该值已初始化。如果将f1
更改为:
let f1() = //etc
然后它将按照您的预期运行
我怀疑您的调用堆栈问题是因为您希望在
f1
的初始值设定项之前调用main
,这是不正确的。f1
是一个值,而不是一个函数。请看:啊,这太愚蠢了!谢谢你们。