Visual Studio Code .NET Core 调试器未命中断点

Jul*_*ian 2 c# debugging .net-core visual-studio-code

我在尝试在 Visual Studio Code 中调试用 .NET Core 编写的应用程序时遇到问题。这是设置:我使用的是运行 Debian 9(具有默认 GUI)的虚拟机。我已经安装了 .Net Core SDK 2.1 和 Visual Studio Code 1.30.0。安装了 C# 1.17.1 的扩展。我创建了一个简单的项目:

class MyProgram
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hello You Angel!");
        ProcessStartInfo startInfo = new ProcessStartInfo() { FileName = "/bin/bash", Arguments = "-c nautilus /home/", }; 
        Process proc = new Process() { StartInfo = startInfo, };
        proc.Start();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我运行该程序,则执行并生成正确的输出。在调试窗口中,我按下了齿轮按钮来编辑 launch.jason文件调试窗口

这是它的样子:

{
 "version": "0.2.1",
 "configurations": [
    {
        "name": ".NET Core Launch (console)",
        "type": "coreclr",
        "request": "launch",
        "preLaunchTask": "build",
        // If you have changed target frameworks, make sure to update the program path.
        "program": "${workspaceFolder}/HelloWorld/bin/Debug/netcoreapp2.1/HelloWorld.dll",
        "args": [],
        "cwd": "${workspaceFolder}/HelloWorld",
        // For more information about the 'console' field, see https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md#console-terminal-window
        "console": "integratedTerminal",
        "stopAtEntry": false,
        "internalConsoleOptions": "openOnSessionStart",
        "externalConsole": false,
    },
    {
        "name": ".NET Core Attach",
        "type": "coreclr",
        "request": "attach",
        "processId": "${command:pickProcess}"
    }
 ,]
}
Run Code Online (Sandbox Code Playgroud)

我在项目中放置了一个断点: 断点

当我点击绿色三角形按钮时,断点没有命中。实际上,我认为我根本没有执行任何代码。让这个应用程序进入调试模式有什么我遗漏的吗?

请帮忙!

小智 6

我在不同的设置上遇到了同样的问题。使用 VSCode 和 dotnet sdk 2.2 运行 Windows 10。

我在浏览 gissues这里找到了一些答案。

这个我认为解决了我的问题

我还注意到,当被要求将调试器附加到进程时,请确保我选择了正确的“c:/projectdir/bin/debug/projectname.dll”。

之后 VSCode 成功命中我的断点。

我希望这有帮助。


Mac*_*ski 5

1)在终端中转到您的项目并写入

dotnet restore
dotnet clean
dotnet build
Run Code Online (Sandbox Code Playgroud)

2)检查配置(launch.json)中“program”和“cwd”的路径。