-
Notifications
You must be signed in to change notification settings - Fork 15.5k
Description
I am using VSCode IDE.
Until recently, I was using codelldb VSCode extension for debugging C++ code.
Now I am experimenting with "LLDB DAP" VSCode extension.
I have compiled lldb with debugging symbols so that I can debug it in VSCode (using the "LLDB DAP" VSCode extension).
I have noticed that whenever the control flow enters the ValueObject::GetExpressionPath method (defined in the lldb/source/ValueObject/ValueObject.cpp file), as soon as I start typing something in the "DEBUG CONSOLE" (it does not matter what), the following error appears in the "DEBUG CONSOLE":
lldb-dap: /home/me/git/other/llvm-project/main/0/clang/lib/Sema/SemaAccess.cpp:750: AccessResult HasAccess(Sema &, const EffectiveContext &, const CXXRecordDecl *, AccessSpecifier, const AccessTarget &): Assertion `Access == AS_private || Access == AS_protected' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /home/me/git/other/llvm-project/main/0/build--main--Debug--mold--make/bin/lldb-dap
and the following message appears in the "LLDB-DAP" console (accessible via the combo-box in the "OUTPUT" pane:
2025-12-11 22:30:49.196 [error] Error: read error
at Socket.<anonymous> (file:///usr/share/code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:132:1948)
at Socket.emit (node:events:531:35)
at Pipe.<anonymous> (node:net:346:12)
Afterwards, the "DEBUG CONSOLE" is unresponsive.
I have configured VSCode to use lldb-dap built from the main branch by adding the following entry:
"lldb-dap.executable-path": "/home/me/git/other/llvm-project/main/1/build--main--Release--ld--make/bin/lldb-dap",
to the corresponding .vscode/settings.json file.
I suspect that the bug is in the "LLDB DAP" VSCode extension and not in the lldb-dap program.
This suspicion is based on my experiment where I sent and received DAP messages directly to/from the lldb-dap program. I have instructed it to stop in the ValueObject::GetExpressionPath method and when the control flow reached that method, the lldb-dap remained responsive in the usual way.