//===-- DWARFExpression.h ---------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLDB_EXPRESSION_DWARFEXPRESSION_H #define LLDB_EXPRESSION_DWARFEXPRESSION_H #include "lldb/Core/Address.h" #include "lldb/Core/Disassembler.h" #include "lldb/Utility/DataExtractor.h" #include "lldb/Utility/Scalar.h" #include "lldb/Utility/Status.h" #include "lldb/lldb-private.h" #include "llvm/DebugInfo/DWARF/DWARFLocationExpression.h" #include <functional> namespace lldb_private { namespace plugin { namespace dwarf { class DWARFUnit; } // namespace dwarf } // namespace plugin /// \class DWARFExpression DWARFExpression.h /// "lldb/Expression/DWARFExpression.h" Encapsulates a DWARF location /// expression and interprets it. /// /// DWARF location expressions are used in two ways by LLDB. The first /// use is to find entities specified in the debug information, since their /// locations are specified in precisely this language. The second is to /// interpret expressions without having to run the target in cases where the /// overhead from copying JIT-compiled code into the target is too high or /// where the target cannot be run. This class encapsulates a single DWARF /// location expression or a location list and interprets it. class DWARFExpression { … }; } // namespace lldb_private #endif // LLDB_EXPRESSION_DWARFEXPRESSION_H