Visual Studio Code .NET核心调试器没有遇到断点

问题描述 投票:0回答:2

我尝试在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();
    }
}

如果我运行程序,执行,并产生正确的输出。在调试窗口中,我按下齿轮按钮编辑launch.jason fileDebug window

这是它的样子:

{
 "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}"
    }
 ,]
}

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

当我点击绿色三角形按钮时,它没有击中断点。实际上我认为我执行的代码完全没有。是否有一些我缺少这个应用程序调试模式?

请帮忙!

c# debugging visual-studio-code .net-core
2个回答
3
投票

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

我通过gissues Here找到了一些答案。

This one I think fixed my problem

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

之后VSCode成功点击我的断点。

我希望这有帮助。


0
投票

1)在终端进入你的项目并写

dotnet restore
dotnet clean
dotnet build

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

© www.soinside.com 2019 - 2024. All rights reserved.