[all-commits] [llvm/llvm-project] 4c305f: [lldb] Add synthetic variable support to Get*Varia...
Aman LaChapelle via All-commits
all-commits at lists.llvm.org
Wed Apr 15 23:50:45 PDT 2026
Branch: refs/heads/users/bzcheeseman/stack/9
Home: https://github.com/llvm/llvm-project
Commit: 4c305fba66dd3889d9db0be8d5d1bb92f538cdd2
https://github.com/llvm/llvm-project/commit/4c305fba66dd3889d9db0be8d5d1bb92f538cdd2
Author: bzcheeseman <aman.lachapelle at gmail.com>
Date: 2026-04-15 (Wed, 15 Apr 2026)
Changed paths:
M lldb/include/lldb/Target/BorrowedStackFrame.h
M lldb/include/lldb/Target/StackFrame.h
M lldb/source/API/SBFrame.cpp
M lldb/source/Commands/CommandObjectFrame.cpp
M lldb/source/Core/IOHandlerCursesGUI.cpp
M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
M lldb/source/Plugins/Process/scripted/ScriptedFrame.cpp
M lldb/source/Plugins/Process/scripted/ScriptedFrame.h
M lldb/source/Symbol/Variable.cpp
M lldb/source/Target/BorrowedStackFrame.cpp
M lldb/source/Target/StackFrame.cpp
M lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py
M lldb/test/API/functionalities/scripted_frame_provider/test_frame_providers.py
Log Message:
-----------
[lldb] Add synthetic variable support to Get*VariableList.
This patch adds a new flag to the lldb_private::StackFrame API to get variable lists: `include_synthetic_vars`. This allows ScriptedFrame (and other future synthetic frames) to construct 'fake' variables and return them in the VariableList, so that commands like `fr v` and `SBFrame::GetVariables` can show them to the user as requested.
This patch includes all changes necessary to call the API the new way - I tried to use my best judgement on when to include synthetic variables or not and leave comments explaining the decision.
As a consequence of producing synthetic variables, this patch means that ScriptedFrame can produce Variable objects with ValueType that contains a ValueTypeExtendedMask in a high bit. This necessarily complicates some of the switch/case handling in places where we would expect to find such variables, and this patch makes best effort to address all such cases as well. From experience, they tend to show up whenever we're dealing with checking if a Variable is in a specified scope, which means we basically have to check the high bit against some user input saying "yes/no synthetic variables".
stack-info: PR: https://github.com/llvm/llvm-project/pull/181501, branch: users/bzcheeseman/stack/9
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list