Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual Studio中F#调用堆栈的问题_F#_Visual Studio Debugging - Fatal编程技术网

Visual Studio中F#调用堆栈的问题

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,而它应该是

看来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,而它应该是//2。为什么呢

同时,此时我无法导航到调用堆栈的最顶层。也就是说,当我双击callstack条目时,它会将我导航到第//2行,VS会告诉我“源不可用”。为什么呢

这两个问题并没有阻止我调试,但却让我非常不高兴

第一个被击中的BP是//1,而它应该是//2。为什么呢

f1
不是函数,而是单位类型的值。因此,它的值将在调用
main
之前构造。您会注意到,如果多次调用
f1
,它只打印一次,因为该值已初始化。如果将
f1
更改为:

let f1() = //etc
然后它将按照您的预期运行


我怀疑您的调用堆栈问题是因为您希望在
f1
的初始值设定项之前调用
main
,这是不正确的。

f1
是一个值,而不是一个函数。请看:啊,这太愚蠢了!谢谢你们。