Skip to content

LLDB DAP assertion failure #171913

@sedymrak

Description

@sedymrak

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions