microsoft / vscode-dotnettools

This is a feedback repository to capture issues logged for the C# Dev Kit and related extensions from Visual Studio Code
Other
221 stars 10 forks source link

Aspire won't start debugging after stop debugging and change code #1405

Open burtonrodman opened 2 weeks ago

burtonrodman commented 2 weeks ago

Type: Bug

  1. open a solution with Aspire setup
  2. start debugging - works as expected the first few times.
  3. stop debugging
  4. make a code change
  5. start debugging

ACTUAL: vscode goes into debug mode, but the browser is not launched and manually navigating to the Dashboard or app's url refuses a connection

Must restart vscode to get it working again.

EXPECTED: vscode goes into debug mode, browser launches to Dashboard and all dependencies work as expected.

Extension version: 1.10.10 VS Code version: Code 1.92.2 (fee1edb8d6d72a0ddff41e5f71a671c23ed924b9, 2024-08-14T17:29:30.058Z) OS version: Windows_NT x64 10.0.22631 Modes:

System Info |Item|Value| |---|---| |CPUs|13th Gen Intel(R) Core(TM) i9-13900H (20 x 2995)| |GPU Status|2d_canvas: enabled
canvas_oop_rasterization: enabled_on
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_graphite: disabled_off
video_decode: enabled
video_encode: enabled
vulkan: disabled_off
webgl: enabled
webgl2: enabled
webgpu: enabled
webnn: disabled_off| |Load (avg)|undefined| |Memory (System)|31.59GB (8.06GB free)| |Process Argv|--folder-uri file:///d%3A/source/2010solutions/Internal/TwentyTenSolutions.AspNetCore --crash-reporter-id c8e3650d-a133-42e9-901c-3aa8e8465629| |Screen Reader|no| |VM|0%|
A/B Experiments ``` vsliv368cf:30146710 vspor879:30202332 vspor708:30202333 vspor363:30204092 vswsl492cf:30256860 vscod805:30301674 binariesv615:30325510 vsaa593cf:30376535 py29gd2263:31024239 c4g48928:30535728 azure-dev_surveyone:30548225 962ge761:30959799 pythongtdpath:30769146 welcomedialog:30910333 pythonnoceb:30805159 asynctok:30898717 pythonregdiag2:30936856 pythonmypyd1:30879173 h48ei257:31000450 pythontbext0:30879054 accentitlementst:30995554 dsvsc016:30899300 dsvsc017:30899301 dsvsc018:30899302 cppperfnew:31000557 dsvsc020:30976470 pythonait:31006305 dsvsc021:30996838 jg8ic977:31013176 pythoncenvpt:31062603 a69g1124:31058053 dvdeprecation:31068756 dwnewjupyter:31046869 impr_priority:31102340 refactort:31108082 pythonrstrctxt:31112756 wkspc-onlycs-c:31111717 wkspc-ranged-c:31125598 ei213698:31121563 aajjf12562cf:31125794 ```
WardenGnaw commented 2 weeks ago

@burtonrodman Would it be possible to share a GIF of what you are running into? I was unable to reproduce your issue with my example.

Also start debugging can be done multiple ways. Are you right clicking solution explorer? Are you hitting F5, and if so do you have a launch.json or are you using the startup project experience.

burtonrodman commented 2 weeks ago

using launch.json and F5. it's hard to know when it's going to happen, but i'll try to get a recording and check all the logs the next time it happens -- it's maybe 10-20% of the time.

WardenGnaw commented 2 weeks ago

@burtonrodman Can you share the launch.json you are using or an example that reproduces the issue?

Another thing that would be helpful for me to investigate this is if you can enable the setting csharp.debug.logging.diagnosticsLog.protocolMessages and share the output in the Debug Console when it fails.

burtonrodman commented 2 weeks ago

Debug Console of the AppHost project...

-> (C) {"command":"initialize","arguments":{"clientID":"vscode","clientName":"Visual Studio Code","adapterID":"coreclr","pathFormat":"path","linesStartAt1":true,"columnsStartAt1":true,"supportsVariableType":true,"supportsVariablePaging":true,"supportsRunInTerminalRequest":true,"locale":"en","supportsProgressReporting":true,"supportsInvalidatedEvent":true,"supportsMemoryReferences":true,"supportsArgsCanBeInterpretedByShell":true,"supportsMemoryEvent":true,"supportsStartDebuggingRequest":true},"type":"request","seq":1}
-> (C) {"command":"launch","arguments":{"name":"aspire","type":"coreclr","request":"launch","projectPath":"D:\\source\\MyCompany\\MyProject\\MyProject.Aspire/MyProject.AppHost/MyProject.AppHost.csproj","__configurationTarget":6,"preRestartTask":"dotnet: build d:/source/MyCompany/MyProject/MyProject.Aspire/MyProject.AppHost/MyProject.AppHost.csproj","program":"D:\\source\\MyCompany\\MyProject\\MyProject.Aspire\\MyProject.AppHost\\bin\\Debug\\net8.0\\MyProject.AppHost.exe","args":"","cwd":"D:\\source\\MyCompany\\MyProject\\MyProject.Aspire\\MyProject.AppHost","env":{"ASPNETCORE_ENVIRONMENT":"Development","DOTNET_ENVIRONMENT":"Development","DOTNET_RESOURCE_SERVICE_ENDPOINT_URL":"https://localhost:22112","DOTNET_DASHBOARD_OTLP_ENDPOINT_URL":"https://localhost:21037","DEBUG_SESSION_PORT":"localhost:51060","DEBUG_SESSION_TOKEN":"Jg5qeuZeIpR8yI2CEMw/Vw==","DEBUG_SESSION_SERVER_CERTIFICATE":"MIIDYTCCAhmgAwIBAgIJAPVVkxDlz86EMD0GCSqGSIb3DQEBCjAwoA0wCwYJYIZIAWUDBAIBoRowGAYJKoZIhvcNAQEIMAsGCWCGSAFlAwQCAaIDAgEgMDMxMTAvBgNVBAMTKGRlYnVnLXNlc3Npb24udmlzdWFsc3R1ZGlvLm1pY3Jvc29mdC5jb20wHhcNMjQwODMwMTUyNjE3WhcNMjQwOTA2MTUyNjIyWjAzMTEwLwYDVQQDEyhkZWJ1Zy1zZXNzaW9uLnZpc3VhbHN0dWRpby5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy6gRxgkWF514I/+/2xtRAUkLxnBt5nG/B7QWa8TcC3gopk6MXmTrZxJLgXegnSji5NlLwnqSX9MvsMPmrHrGxLPxvmeLSo/G8SK+k/VWcfvhoM7vCtnfejQ2McPMuybJfy1m3oSX5Yz8ntnHBs97G8LzgUCK/6T/afl8PgwkUxfWz5ps7uNmW0X2xfSsfBw2+tZIiMkqo5wREstur9DZtvUQlGq9mBRTEcGDCJ21MIAh/3skoKtIDm4xoWF9ctBGN+RNdEdFXpEhKqm6g1j9On5/jUPFv57MBJrEfbePZdxm++8c9O1u0ElVVFx+63HSB891ASJOOdWn0y5AJ6HmJQIDAQABoxgwFjAUBgNVHREEDTALgglsb2NhbGhvc3QwPQYJKoZIhvcNAQEKMDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMCASADggEBAKa117fePdWgbBh9ruUMzC91o23VbIMOOFkuOa8NrgkYq84CcUv41C5u69W7s6m90jEaPt9aq+hf9EXd58mEVU1vr7s2GFS77F01TJn3XrQ/0GbUg5ys8+jMNpXs6uPe6N0d4gL8Y4AH1zDYnrkn+wBpt785X1GoqWr3pMtayVhk+WaHheMtBqsHm4fEUadOdYLjohCnctZbxzRIUgAGTJiTZZJIpr8+rubSI4BtKYplC9ofX22Ij/Ltw1RdzgaHhkUg+UrD/Mh90+nhstAC6/5s7Z8QSO4MECPzIZnLYUmXrxvDjo3Y1I7Lj3ggLPaWPlsv40EHKARgvUgIAIxpzKg=","DCP_INSTANCE_ID_PREFIX":"MyProject.AppHost;","DOTNET_LAUNCH_PROFILE":"https","DOTNET_DASHBOARD_URL":"https://localhost:17177;http://localhost:15190","ASPNETCORE_URLS":"https://localhost:17177;http://localhost:15190","DOTNET_DASHBOARD_FRONTEND_BROWSERTOKEN":"d5b1861c69605ba88219dea3aeca5841"},"console":"internalConsole","checkForDevCert":true,"launchSettingsProfile":null,"debugConsoleVerbosity":"minimal","debuggerStartDebugTelemetry":{"buildCompletedTimestamp":"0x191a3e6ede6","totalBuildTime":10764,"projectType":"Web"},"serverReadyAction":{"action":"openExternally","pattern":"\\bLogin to the dashboard at\\s+https?://\\S+","uriFormat":"https://localhost:17177/login?t=d5b1861c69605ba88219dea3aeca5841"},"hotReloadOnSave":false,"hotReloadVerbosity":"minimal","stopAtEntry":false,"justMyCode":true,"requireExactSource":true,"enableStepFiltering":true,"logging":{"exceptions":true,"moduleLoad":true,"programOutput":true,"browserStdOut":true,"elapsedTiming":false,"threadExit":false,"processExit":true,"engineLogging":false,"diagnosticsLog":{"protocolMessages":false,"dispatcherMessages":"none","debugEngineAPITracing":"none","debugRuntimeEventTracing":false,"expressionEvaluationTracing":false,"startDebuggingTracing":false},"consoleUsageMessage":true},"suppressJITOptimizations":false,"symbolOptions":{"searchPaths":[],"searchMicrosoftSymbolServer":false,"searchNuGetOrgSymbolServer":false,"cachePath":"","moduleFilter":{"mode":"loadAllButExcluded","excludedModules":[],"includedModules":[],"includeSymbolsNextToModules":true,"includeSymbolsOnDemand":true}},"expressionEvaluationOptions":{"allowImplicitFuncEval":true,"allowToString":true,"allowFastEvaluate":true,"showRawValues":false},"internalConsoleOptions":"openOnSessionStart","__sessionId":"0d03e778-af89-4d1a-8de4-77212d452cb0"},"type":"request","seq":2}
------------------------------------------------------------------------------
You may only use the Microsoft Visual Studio .NET/C/C++ Debugger (vsdbg) with
Visual Studio Code, Visual Studio or Visual Studio for Mac software to help you
develop and test your applications.
------------------------------------------------------------------------------
<- (R) {"seq":5,"type":"response","request_seq":2,"success":true,"command":"launch"}
<- (E) {"seq":6,"type":"event","event":"initialized","body":{}}
-> (C) {"command":"setFunctionBreakpoints","arguments":{"breakpoints":[]},"type":"request","seq":3}
<- (R) {"seq":7,"type":"response","request_seq":3,"success":true,"command":"setFunctionBreakpoints","body":{"breakpoints":[]}}
-> (C) {"command":"setExceptionBreakpoints","arguments":{"filters":[],"filterOptions":[{"filterId":"all"},{"filterId":"user-unhandled"}]},"type":"request","seq":4}
<- (R) {"seq":8,"type":"response","request_seq":4,"success":true,"command":"setExceptionBreakpoints","body":{"breakpoints":[{"verified":true},{"verified":true}]}}
ServiceBroker Start: 0 : Requesting proxy to "Microsoft.VisualStudio.Debugger.AspireSessionSynchronizeService (0.1)"
ServiceBroker Start: 0 : Requesting proxy to "Microsoft.VisualStudio.OutputChannelService (0.1)"
ServiceBroker Start: 0 : Requesting proxy to "Microsoft.VisualStudio.Debugger.ManagedEditAndContinueRemoteDebuggerService2 (0.1)"
-> (C) {"command":"configurationDone","type":"request","seq":5}
<- (E) {"seq":9,"type":"event","event":"output","body":{"category":"telemetry","output":"VS/Diagnostics/Debugger/vsdbg/ProcessCreate","data":{"VS.Diagnostics.Debugger.vsdbg.OSFamily":"Windows","VS.Diagnostics.Debugger.vsdbg.Version":"17.12.10807.2 commit:198ab084869ebd47dcb9da7905a7cf83123be807","VS.Diagnostics.Debugger.vsdbg.WindowsVersion":"10.0.22631","VS.Diagnostics.Debugger.vsdbg.TargetArchitecture":"AMD64"}}}
<- (E) {"seq":10,"type":"event","event":"process","body":{"name":"D:\\source\\MyCompany\\MyProject\\MyProject.Aspire\\MyProject.AppHost\\bin\\Debug\\net8.0\\MyProject.AppHost.exe","systemProcessId":38876,"isLocalProcess":true,"startMethod":"launch"}}
ServiceBroker Start: 0 : Requesting proxy to "Microsoft.VisualStudio.Debugger.ManagedEditAndContinueCsDevKitEngineService2 (0.1)"
<- (R) {"seq":11,"type":"response","request_seq":5,"success":true,"command":"configurationDone"}
-> (C) {"command":"threads","type":"request","seq":6}
<- (R) {"seq":12,"type":"response","request_seq":6,"success":true,"command":"threads","body":{"threads":[]}}
ServiceBroker Transfer: 0 : Transfer, relatedActivityId=2830d63e-6c57-43af-b587-cd64c12576c8
ServiceBroker Start: 0 : Requesting pipe to "Microsoft.VisualStudio.Server.IBrokeredServiceBridgeManifest (0.1)"
ServiceBroker Stop: 0 : Requesting pipe to "Microsoft.VisualStudio.Server.IBrokeredServiceBridgeManifest (0.1)"
ServiceBroker Transfer: 0 : Transfer, relatedActivityId=db82dbc4-2f3b-49b4-b9f7-3eb61a18e752
ServiceBroker Stop: 0 : Requesting proxy to "Microsoft.VisualStudio.OutputChannelService (0.1)"
ServiceBroker Stop: 0 : Requesting proxy to "Microsoft.VisualStudio.Debugger.ManagedEditAndContinueRemoteDebuggerService2 (0.1)"
ServiceBroker Stop: 0 : Requesting proxy to "Microsoft.VisualStudio.Debugger.AspireSessionSynchronizeService (0.1)"
ServiceBroker Stop: 0 : Requesting proxy to "Microsoft.VisualStudio.Debugger.ManagedEditAndContinueCsDevKitEngineService2 (0.1)"
-> (C) [Internal] {"command":"pause","arguments":{},"seq":-2,"type":"request"}
<- (E) {"seq":13,"type":"event","event":"output","body":{"category":"telemetry","output":"VS/Diagnostics/Debugger/vsdbg/Pause","data":{"VS.Diagnostics.Debugger.vsdbg.OSFamily":"Windows","VS.Diagnostics.Debugger.vsdbg.Version":"17.12.10807.2 commit:198ab084869ebd47dcb9da7905a7cf83123be807","VS.Diagnostics.Debugger.vsdbg.WindowsVersion":"10.0.22631","VS.Diagnostics.Debugger.vsdbg.AdapterId":"coreclr","VS.Diagnostics.Debugger.vsdbg.Pause.Duration":0}}}
<- (R) [Internal] {"seq":14,"type":"response","request_seq":-2,"success":true,"command":"pause"}
<- (E) {"seq":17,"type":"event","event":"module","body":{"reason":"new","module":{"id":1000,"name":"System.Private.CoreLib.dll","path":"C:\\Program Files\\dotnet\\shared\\Microsoft.NETCore.App\\8.0.8\\System.Private.CoreLib.dll","isOptimized":true,"isUserCode":false,"version":"8.00.824.36612","symbolStatus":"Skipped loading symbols."}}}
<- (E) {"seq":18,"type":"event","event":"thread","body":{"reason":"started","threadId":44028}}
<- (E) {"seq":19,"type":"event","event":"output","body":{"category":"telemetry","output":"VS/Diagnostics/Debugger/vsdbg/Launch","data":{"VS.Diagnostics.Debugger.vsdbg.Version":"17.12.10807.2 commit:198ab084869ebd47dcb9da7905a7cf83123be807","VS.Diagnostics.Debugger.vsdbg.OSFamily":"Windows","VS.Diagnostics.Debugger.vsdbg.VisualizerFileUsed":false,"VS.Diagnostics.Debugger.vsdbg.WindowsVersion":"10.0.22631","VS.Diagnostics.Debugger.vsdbg.SourceFileMappings":0,"VS.Diagnostics.Debugger.vsdbg.TargetCLRVersion":"8.0.824.36612","VS.Diagnostics.Debugger.vsdbg.TargetType":"Live","VS.Diagnostics.Debugger.vsdbg.Launch.DebuggerStartTime":282,"VS.Diagnostics.Debugger.vsdbg.BuildTime":10764,"VS.Diagnostics.Debugger.vsdbg.ProjectType":"Web","VS.Diagnostics.Debugger.vsdbg.DebugStartDuration":848,"VS.Diagnostics.Debugger.vsdbg.Console":0,"VS.Diagnostics.Debugger.vsdbg.IsAspireLaunch":false,"VS.Diagnostics.Debugger.vsdbg.AdapterId":"coreclr"}}}
<- (E) {"event":"stopped","body":{"threadId":44028,"reason":"pause","preserveFocusHint":true,"allThreadsStopped":true},"seq":20,"type":"event"}
-> (C) {"command":"threads","type":"request","seq":7}
<- (R) {"seq":21,"type":"response","request_seq":7,"success":true,"command":"threads","body":{"threads":[{"id":44028,"name":"Main Thread"}]}}
-> (C) {"command":"stackTrace","arguments":{"threadId":44028,"startFrame":0,"levels":20},"type":"request","seq":8}
<- (R) {"seq":22,"type":"response","request_seq":8,"success":true,"command":"stackTrace","body":{"stackFrames":[{"id":1000,"name":"[External Code]","line":0,"column":0,"presentationHint":"subtle"}],"totalFrames":1}}
-> (C) {"command":"threads","type":"request","seq":9}
<- (R) {"seq":23,"type":"response","request_seq":9,"success":true,"command":"threads","body":{"threads":[{"id":44028,"name":"Main Thread"}]}}
burtonrodman commented 2 weeks ago

my launch.json:

{
  // Use IntelliSense to learn about possible attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "name": "aspire",
      "type": "dotnet",
      "request": "launch",
      "projectPath": "${workspaceFolder}/MyProject.AppHost/MyProject.AppHost.csproj"
    }

  ]
}
burtonrodman commented 2 weeks ago

it seems to be happening when you stop the debugger after an exception is thrown and displayed in the debugger. for example

  1. launch the Aspire project with F5 (launch.json)

  2. navigate to a .Net 8 Blazor Web App with global WebAssembly interactivity.

  3. navigate to a page that does NOT throw an exception.

  4. click the Stop icon in the debugging toolbar

  5. hit F5 to run again -- launches as expected.

  6. launch the Aspire project with F5 (launch.json)

  7. navigate to a .Net 8 Blazor Web App with global WebAssembly interactivity.

  8. navigate to a page that throws an exception -- an exception is thrown because a server side service is not properly registered (my fault)

  9. the debugger stops and displays the exception

  10. click the Stop icon in the debugging toolbar

  11. hit F5 to run again

  12. vscode builds the project and starts debugging

  13. the Aspire Dashboard is NOT launched, and one cannot manually navigate to the Dashboard or any project URL.