LLDB mainline
|
#include <DILEval.h>
Public Member Functions | |
Interpreter (lldb::TargetSP target, llvm::StringRef expr, std::shared_ptr< StackFrame > frame_sp, lldb::DynamicValueType use_dynamic, bool use_synthetic, bool fragile_ivar, bool check_ptr_vs_member) | |
llvm::Expected< lldb::ValueObjectSP > | Evaluate (const ASTNode *node) |
Private Member Functions | |
llvm::Expected< lldb::ValueObjectSP > | Visit (const IdentifierNode *node) override |
llvm::Expected< lldb::ValueObjectSP > | Visit (const MemberOfNode *node) override |
llvm::Expected< lldb::ValueObjectSP > | Visit (const UnaryOpNode *node) override |
llvm::Expected< lldb::ValueObjectSP > | Visit (const ArraySubscriptNode *node) override |
llvm::Expected< lldb::ValueObjectSP > | Visit (const BitFieldExtractionNode *node) override |
llvm::Expected< lldb::ValueObjectSP > | Visit (const IntegerLiteralNode *node) override |
llvm::Expected< lldb::ValueObjectSP > | Visit (const FloatLiteralNode *node) override |
llvm::Expected< lldb::ValueObjectSP > | Visit (const BooleanLiteralNode *node) override |
llvm::Expected< CompilerType > | PickIntegerType (lldb::TypeSystemSP type_system, std::shared_ptr< ExecutionContextScope > ctx, const IntegerLiteralNode *literal) |
Private Member Functions inherited from lldb_private::dil::Visitor | |
virtual | ~Visitor ()=default |
Private Attributes | |
lldb::TargetSP | m_target |
llvm::StringRef | m_expr |
lldb::ValueObjectSP | m_scope |
std::shared_ptr< StackFrame > | m_exe_ctx_scope |
lldb::DynamicValueType | m_use_dynamic |
bool | m_use_synthetic |
bool | m_fragile_ivar |
bool | m_check_ptr_vs_member |
lldb_private::dil::Interpreter::Interpreter | ( | lldb::TargetSP | target, |
llvm::StringRef | expr, | ||
std::shared_ptr< StackFrame > | frame_sp, | ||
lldb::DynamicValueType | use_dynamic, | ||
bool | use_synthetic, | ||
bool | fragile_ivar, | ||
bool | check_ptr_vs_member ) |
Definition at line 138 of file DILEval.cpp.
References m_check_ptr_vs_member, m_exe_ctx_scope, m_expr, m_fragile_ivar, m_target, m_use_dynamic, and m_use_synthetic.
llvm::Expected< lldb::ValueObjectSP > lldb_private::dil::Interpreter::Evaluate | ( | const ASTNode * | node | ) |
Definition at line 147 of file DILEval.cpp.
References lldb_private::dil::ASTNode::Accept().
Referenced by lldb_private::StackFrame::DILGetValueForVariableExpressionPath(), Visit(), Visit(), Visit(), and Visit().
|
private |
Definition at line 521 of file DILEval.cpp.
References lldb::eBasicTypeInt, lldb::eBasicTypeInvalid, lldb::eBasicTypeLong, lldb::eBasicTypeLongLong, lldb::eBasicTypeUnsignedInt, lldb::eBasicTypeUnsignedLong, lldb::eBasicTypeUnsignedLongLong, lldb_private::CompilerType::GetBasicTypeFromAST(), lldb_private::CompilerType::GetBitSize(), lldb_private::dil::ASTNode::GetLocation(), lldb_private::dil::IntegerLiteralNode::GetRadix(), lldb_private::dil::IntegerLiteralNode::GetTypeSuffix(), lldb_private::dil::IntegerLiteralNode::GetValue(), lldb_private::dil::IntegerLiteralNode::IsUnsigned(), lldb_private::dil::Long, m_expr, and lldb_private::dil::None.
Referenced by Visit().
|
overrideprivatevirtual |
Implements lldb_private::dil::Visitor.
Definition at line 329 of file DILEval.cpp.
References lldb::eLanguageTypeObjC, lldb::eNoDynamicValues, Evaluate(), lldb_private::dil::ArraySubscriptNode::GetBase(), lldb_private::StreamString::GetData(), lldb_private::dil::ArraySubscriptNode::GetIndex(), lldb_private::dil::ASTNode::GetLocation(), lldb_private::CompilerType::GetNonReferenceType(), lldb_private::CompilerType::IsArrayType(), lldb_private::CompilerType::IsPointerToVoid(), lldb_private::CompilerType::IsPointerType(), lldb_private::CompilerType::IsScalarType(), m_expr, m_use_dynamic, and m_use_synthetic.
|
overrideprivatevirtual |
Implements lldb_private::dil::Visitor.
Definition at line 471 of file DILEval.cpp.
References error(), Evaluate(), lldb_private::dil::BitFieldExtractionNode::GetBase(), lldb_private::dil::BitFieldExtractionNode::GetFirstIndex(), lldb_private::dil::BitFieldExtractionNode::GetLastIndex(), lldb_private::dil::ASTNode::GetLocation(), and m_expr.
|
overrideprivatevirtual |
Implements lldb_private::dil::Visitor.
Definition at line 606 of file DILEval.cpp.
References lldb_private::ValueObject::CreateValueObjectFromBool(), lldb_private::dil::BooleanLiteralNode::GetValue(), and m_target.
|
overrideprivatevirtual |
Implements lldb_private::dil::Visitor.
Definition at line 584 of file DILEval.cpp.
References lldb_private::ValueObject::CreateValueObjectFromScalar(), lldb::eBasicTypeDouble, lldb::eBasicTypeFloat, lldb_private::dil::GetBasicType(), lldb_private::dil::ASTNode::GetLocation(), lldb_private::dil::GetTypeSystemFromCU(), lldb_private::dil::FloatLiteralNode::GetValue(), m_exe_ctx_scope, m_expr, and m_target.
|
overrideprivatevirtual |
Implements lldb_private::dil::Visitor.
Definition at line 156 of file DILEval.cpp.
References lldb_private::dil::ASTNode::GetLocation(), lldb_private::dil::IdentifierNode::GetName(), lldb_private::dil::LookupGlobalIdentifier(), lldb_private::dil::LookupIdentifier(), m_exe_ctx_scope, m_expr, m_target, and m_use_dynamic.
|
overrideprivatevirtual |
Implements lldb_private::dil::Visitor.
Definition at line 560 of file DILEval.cpp.
References lldb_private::ValueObject::CreateValueObjectFromScalar(), lldb_private::dil::GetTypeSystemFromCU(), lldb_private::dil::IntegerLiteralNode::GetValue(), m_exe_ctx_scope, m_target, PickIntegerType(), and lldb_private::Scalar::TruncOrExtendTo().
|
overrideprivatevirtual |
Implements lldb_private::dil::Visitor.
Definition at line 220 of file DILEval.cpp.
References lldb::eNoDynamicValues, Evaluate(), lldb_private::Status::Fail(), lldb_private::dil::MemberOfNode::GetBase(), lldb_private::dil::MemberOfNode::GetFieldName(), lldb_private::dil::MemberOfNode::GetIsArrow(), lldb_private::dil::ASTNode::GetLocation(), lldb_private::CompilerType::GetPointeeType(), m_check_ptr_vs_member, m_expr, m_fragile_ivar, m_use_dynamic, m_use_synthetic, and lldb_private::Status::Success().
|
overrideprivatevirtual |
Implements lldb_private::dil::Visitor.
Definition at line 176 of file DILEval.cpp.
References lldb_private::dil::AddrOf, lldb_private::dil::Deref, error(), Evaluate(), lldb_private::dil::UnaryOpNode::GetKind(), lldb_private::dil::ASTNode::GetLocation(), lldb_private::dil::UnaryOpNode::GetOperand(), m_expr, m_use_dynamic, and m_use_synthetic.
|
private |
Definition at line 77 of file DILEval.h.
Referenced by Interpreter(), and Visit().
|
private |
|
private |
Definition at line 71 of file DILEval.h.
Referenced by Interpreter(), PickIntegerType(), Visit(), Visit(), Visit(), Visit(), Visit(), and Visit().
|
private |
Definition at line 76 of file DILEval.h.
Referenced by Interpreter(), and Visit().
|
private |
|
private |
|
private |
|
private |