================
@@ -265,3 +297,38 @@ lldb::RegisterContextSP
ScriptedFrame::GetRegisterContext() {
return m_reg_context_sp;
}
+
+VariableList *ScriptedFrame::GetVariableList(bool get_file_globals,
+ Status *error_ptr) {
+ return m_variable_list_sp.get();
+}
+
+lldb::VariableListSP
+ScriptedFrame::GetInScopeVariableList(bool get_file_globals,
+ bool must_have_valid_location) {
+ return m_variable_list_sp;
+}
+
+lldb::ValueObjectSP ScriptedFrame::GetValueObjectForFrameVariable(
+ const lldb::VariableSP &variable_sp, lldb::DynamicValueType use_dynamic) {
+ for (size_t i = 0, e = m_variable_list_sp->GetSize(); i < e; ++i) {
+ if (m_variable_list_sp->GetVariableAtIndex(i) == variable_sp) {
+ return m_value_objects_sp->GetValueObjectAtIndex(i);
+ }
+ }
+ return nullptr;
+}
+
+lldb::ValueObjectSP ScriptedFrame::GetValueForVariableExpressionPath(
+ llvm::StringRef var_expr, lldb::DynamicValueType use_dynamic,
+ uint32_t options, lldb::VariableSP &var_sp, Status &error) {
+ // Unless the frame implementation knows how to create variables (which it
+ // doesn't), we can't construct anything for the variable. This may seem
+ // somewhat out of place, but it's basically because of how this API is used
-
+ // the print command uses this API to fill in var_sp; and this implementation
+ // can't do that!
+ (void)var_sp;
+ // Otherwise, delegate to the scripted frame interface pointer.
+ return m_scripted_frame_interface_sp->GetValueObjectForVariableExpression(
+ var_expr, options, error);
----------------
medismailben wrote:
Can we add a FIXME so we can take care of this later ?
https://github.com/llvm/llvm-project/pull/178575
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits