File indexing completed on 2026-05-10 08:42:42
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef LLDB_API_SBFRAME_H
0010 #define LLDB_API_SBFRAME_H
0011
0012 #include "lldb/API/SBDefines.h"
0013 #include "lldb/API/SBValueList.h"
0014
0015 namespace lldb_private {
0016 namespace python {
0017 class SWIGBridge;
0018 }
0019 namespace lua {
0020 class SWIGBridge;
0021 }
0022 }
0023
0024 namespace lldb {
0025
0026 class LLDB_API SBFrame {
0027 public:
0028 SBFrame();
0029
0030 SBFrame(const lldb::SBFrame &rhs);
0031
0032 const lldb::SBFrame &operator=(const lldb::SBFrame &rhs);
0033
0034 ~SBFrame();
0035
0036 bool IsEqual(const lldb::SBFrame &that) const;
0037
0038 explicit operator bool() const;
0039
0040 bool IsValid() const;
0041
0042 uint32_t GetFrameID() const;
0043
0044 lldb::addr_t GetCFA() const;
0045
0046 lldb::addr_t GetPC() const;
0047
0048 bool SetPC(lldb::addr_t new_pc);
0049
0050 lldb::addr_t GetSP() const;
0051
0052 lldb::addr_t GetFP() const;
0053
0054 lldb::SBAddress GetPCAddress() const;
0055
0056 lldb::SBSymbolContext GetSymbolContext(uint32_t resolve_scope) const;
0057
0058 lldb::SBModule GetModule() const;
0059
0060 lldb::SBCompileUnit GetCompileUnit() const;
0061
0062 lldb::SBFunction GetFunction() const;
0063
0064 lldb::SBSymbol GetSymbol() const;
0065
0066
0067
0068
0069 lldb::SBBlock GetBlock() const;
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084 const char *GetFunctionName();
0085
0086
0087
0088 const char *GetDisplayFunctionName();
0089
0090 const char *GetFunctionName() const;
0091
0092
0093
0094 lldb::LanguageType GuessLanguage() const;
0095
0096
0097
0098
0099 bool IsInlined();
0100
0101 bool IsInlined() const;
0102
0103 bool IsArtificial();
0104
0105 bool IsArtificial() const;
0106
0107
0108
0109 bool IsHidden() const;
0110
0111
0112
0113 lldb::SBValue EvaluateExpression(const char *expr);
0114
0115 lldb::SBValue EvaluateExpression(const char *expr,
0116 lldb::DynamicValueType use_dynamic);
0117
0118 lldb::SBValue EvaluateExpression(const char *expr,
0119 lldb::DynamicValueType use_dynamic,
0120 bool unwind_on_error);
0121
0122 lldb::SBValue EvaluateExpression(const char *expr,
0123 const SBExpressionOptions &options);
0124
0125
0126
0127
0128 SBStructuredData GetLanguageSpecificData() const;
0129
0130
0131
0132
0133
0134
0135
0136
0137
0138
0139
0140
0141
0142 lldb::SBBlock GetFrameBlock() const;
0143
0144 lldb::SBLineEntry GetLineEntry() const;
0145
0146 lldb::SBThread GetThread() const;
0147
0148 const char *Disassemble() const;
0149
0150 void Clear();
0151
0152 bool operator==(const lldb::SBFrame &rhs) const;
0153
0154 bool operator!=(const lldb::SBFrame &rhs) const;
0155
0156
0157
0158 lldb::SBValueList GetVariables(bool arguments, bool locals, bool statics,
0159 bool in_scope_only);
0160
0161 lldb::SBValueList GetVariables(bool arguments, bool locals, bool statics,
0162 bool in_scope_only,
0163 lldb::DynamicValueType use_dynamic);
0164
0165 lldb::SBValueList GetVariables(const lldb::SBVariablesOptions &options);
0166
0167 lldb::SBValueList GetRegisters();
0168
0169 lldb::SBValue FindRegister(const char *name);
0170
0171
0172
0173 lldb::SBValue FindVariable(const char *var_name);
0174
0175 lldb::SBValue FindVariable(const char *var_name,
0176 lldb::DynamicValueType use_dynamic);
0177
0178
0179
0180
0181
0182
0183 lldb::SBValue GetValueForVariablePath(const char *var_expr_cstr,
0184 DynamicValueType use_dynamic);
0185
0186
0187
0188 lldb::SBValue GetValueForVariablePath(const char *var_path);
0189
0190
0191
0192
0193
0194
0195
0196
0197
0198 lldb::SBValue FindValue(const char *name, ValueType value_type);
0199
0200 lldb::SBValue FindValue(const char *name, ValueType value_type,
0201 lldb::DynamicValueType use_dynamic);
0202
0203 bool GetDescription(lldb::SBStream &description);
0204
0205
0206
0207
0208
0209
0210
0211
0212
0213
0214
0215
0216
0217
0218 SBError GetDescriptionWithFormat(const SBFormat &format, SBStream &output);
0219
0220 protected:
0221 friend class SBBlock;
0222 friend class SBExecutionContext;
0223 friend class SBInstruction;
0224 friend class SBThread;
0225 friend class SBValue;
0226
0227 friend class lldb_private::python::SWIGBridge;
0228 friend class lldb_private::lua::SWIGBridge;
0229
0230 SBFrame(const lldb::StackFrameSP &lldb_object_sp);
0231
0232 lldb::StackFrameSP GetFrameSP() const;
0233
0234 void SetFrameSP(const lldb::StackFrameSP &lldb_object_sp);
0235
0236 lldb::ExecutionContextRefSP m_opaque_sp;
0237 };
0238
0239 }
0240
0241 #endif