Visual Studio Code .NET Core debugger not hitting a breakpoint

Viewed 11566

I have a problem trying to debug applications written in .NET Core in Visual Studio Code. Here is the setup: I'm using a virtual machine running Debian 9 (with the default GUI). I've installed .Net Core SDK 2.1, and Visual Studio Code 1.30.0. Installed the extensions for C# 1.17.1. I've created simple project:

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();
    }
}

If I run the program, in executes, and produces the correct output. In the debug window I pressed the gear button to edit the launch.jason fileDebug window

Here it is what it looks like:

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

I've put a breakpoint in the project: Breakpoint

and when I hit the green triangle button, the breakpoint it not hit. Actually I think that non of the code i executed at all. Is there something I'm missing to get this app it debugging mode?

Please help!

4 Answers

I was having the same issue on a different setup. Running windows 10 using VSCode and dotnet sdk 2.2.

I found a few answers browsing through gissues Here.

And This one I think fixed my problem

I also noticed to make sure I was selecting the correct "c:/projectdir/bin/debug/projectname.dll" when asked to attach the debugger to a process.

After that VSCode successfully hit my breakpoint.

I hope this helps.

1) In terminal go to your project and write

dotnet restore
dotnet clean
dotnet build

2) Check paths of "program" and "cwd" in your configurations (launch.json).

In case anyone hits this problem when they have 'converted' a Class Library project to a Console Application here are the symptoms and cause that I found:

I had mistakenly created a Class Library when I actually wanted a Console Application. I've made this same mistake in .NET Framework projects before and so thought I'll just convert it, no problem. So I altered the Output Type and gave it a Startup Object. The project ran but breakpoints were not hit.

It took me a while to find out why; it was because I'd created the original Class Library project as a .NET Standard project. When I created a new project (same code) as .NET Core (rather than .NET standard) the breakpoints were hit.

Quite interesting that you can actually switch a .NET standard Class Library project to Console Application, as it appears you can't create that setup through the UI.

I switched my project file from netcoreapp3.0 to netcoreapp2.2 and everything build fine but my breakpoints did not hit. After deleting the bin and obj directories, I got an error that the executable dll could not be found. Turned out I had to also change my launch.json file.

In .vscode/launch.json make sure to check your program folder and executable exists.

Related