LLDB  mainline
CPPLanguageRuntime.h
Go to the documentation of this file.
1 //===-- CPPLanguageRuntime.h
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef liblldb_CPPLanguageRuntime_h_
10 #define liblldb_CPPLanguageRuntime_h_
11 
12 #include <vector>
15 #include "lldb/lldb-private.h"
16 
17 namespace lldb_private {
18 
20 public:
22  Lambda = 0,
25  Invalid
26  };
27 
32  lldb::addr_t member__f_pointer_value = 0u;
35  };
36 
38  FindLibCppStdFunctionCallableInfo(lldb::ValueObjectSP &valobj_sp);
39 
40  ~CPPLanguageRuntime() override;
41 
44  }
45 
46  virtual bool IsVTableName(const char *name) = 0;
47 
48  bool GetObjectDescription(Stream &str, ValueObject &object) override;
49 
50  bool GetObjectDescription(Stream &str, Value &value,
51  ExecutionContextScope *exe_scope) override;
52 
53  /// Obtain a ThreadPlan to get us into C++ constructs such as std::function.
54  ///
55  /// \param[in] thread
56  /// Curent thrad of execution.
57  ///
58  /// \param[in] stop_others
59  /// True if other threads should pause during execution.
60  ///
61  /// \return
62  /// A ThreadPlan Shared pointer
63  lldb::ThreadPlanSP GetStepThroughTrampolinePlan(Thread &thread,
64  bool stop_others);
65 
66  bool IsRuntimeSupportValue(ValueObject &valobj) override;
67 protected:
68  // Classes that inherit from CPPLanguageRuntime can see and modify these
69  CPPLanguageRuntime(Process *process);
70 
71 private:
72  DISALLOW_COPY_AND_ASSIGN(CPPLanguageRuntime);
73 };
74 
75 } // namespace lldb_private
76 
77 #endif // liblldb_CPPLanguageRuntime_h_
A line table entry class.
Definition: LineEntry.h:20
Enumerations for broadcasting.
Definition: SBLaunchInfo.h:14
A stream class that can stream formatted output to a file.
Definition: Stream.h:28
lldb::ThreadPlanSP GetStepThroughTrampolinePlan(Thread &thread, bool stop_others)
Obtain a ThreadPlan to get us into C++ constructs such as std::function.
lldb::LanguageType GetLanguageType() const override
bool IsRuntimeSupportValue(ValueObject &valobj) override
Identify whether a value is a language implementation detaul that should be hidden from the user inte...
LanguageType
Programming language type.
"lldb/Target/ExecutionContextScope.h" Inherit from this if your object can reconstruct its execution ...
A plug-in interface definition class for debugging a process.
Definition: Process.h:353
LibCppStdFunctionCallableInfo FindLibCppStdFunctionCallableInfo(lldb::ValueObjectSP &valobj_sp)
A section + offset based address class.
Definition: Address.h:80
virtual bool IsVTableName(const char *name)=0
uint64_t addr_t
Definition: lldb-types.h:83
bool GetObjectDescription(Stream &str, ValueObject &object) override