gpt4 book ai didi

f# - 使用Mono Debug扩展在VSCode中调试F#控制台应用程序时不会出现断点

转载 作者:行者123 更新时间:2023-12-04 13:00:04 32 4
gpt4 key购买 nike

我创建了一个测试控制台应用程序,并尝试使用VSCode和Mono Debug扩展对其进行调试。

fsharp代码:

module TestFharp

[<EntryPoint>]
let main argv =
printfn "Args %A" argv
let x = 5
printf "hello world"
0

launch.json:
{
"version": "0.2.0",
"configurations": [

{
"name": "Launch",
"type": "mono",
"request": "launch",
"program": "C:/FSharp/test/TestFharp/bin/Debug/TestFharp.exe",
"args": [],
"cwd": "${workspaceRoot}",
"preLaunchTask": "",
"runtimeExecutable": null,
"env": {},
"externalConsole": false,
"stopOnEntry": true
},
{
"name": "Attach",
"type": "mono",
"request": "attach",
"address": "localhost",
"port": 55555
}
]
}

DEBUG CONSOLE窗口的输出
mono --debug --debugger-agent=transport=dt_socket,server=y,address=127.0.0.1:61724 C:/FSharp/test/TestFharp/bin/Debug/TestFharp.exe 
Args [||]
hello world
  • 是否需要进行其他设置才能达到断点?
  • 构建文件夹中的exe文件与\projectFolder\bin\Debug有什么区别?
  • 最佳答案

    What's the difference between exe file inside build folder and \projectFolder\bin\Debug


    exe目录中的 build文件是由FAKE的构建脚本( build.fsx文件)创建的[在Ionide中使用 Ctrl + F5/ FAKE: Build default命令调用]
    exe中的 \projectFolder\bin\Debug是标准的MsBuild输出。在Ionide中,您可以使用 MsBuild: Build project命令直接调用MsBuild。

    两个 exe文件都相同(FAKE在后台使用MsBuild),这只是优先级问题,以及您是否要在构建过程中运行一些其他操作(如测试)-FAKE允许您定义更复杂的构建过程,MsBuild只是编译应用程序。

    根据您用来构建应用的方法,您需要在 exe中指向正确的 launch.json
    我还将 externalConsole设置为 true

    否则,它看起来不错, F5应该启动您的应用程序和调试器。

    关于f# - 使用Mono Debug扩展在VSCode中调试F#控制台应用程序时不会出现断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42929225/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com