LLDB mainline
ScriptInterpreter.h
Go to the documentation of this file.
1//===-- ScriptInterpreter.h -------------------------------------*- C++ -*-===//
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 LLDB_INTERPRETER_SCRIPTINTERPRETER_H
10#define LLDB_INTERPRETER_SCRIPTINTERPRETER_H
11
15#include "lldb/API/SBData.h"
16#include "lldb/API/SBError.h"
17#include "lldb/API/SBEvent.h"
22#include "lldb/API/SBStream.h"
39#include "lldb/Utility/Status.h"
41#include "lldb/lldb-private.h"
42#include <optional>
43
44namespace lldb_private {
45
47public:
49
50 virtual ~ScriptInterpreterLocker() = default;
51
52private:
56};
57
59public:
61
62 bool GetEnableIO() const { return m_enable_io; }
63
64 bool GetSetLLDBGlobals() const { return m_set_lldb_globals; }
65
66 // If this is true then any exceptions raised by the script will be
67 // cleared with PyErr_Clear(). If false then they will be left for
68 // the caller to clean up
69 bool GetMaskoutErrors() const { return m_maskout_errors; }
70
72 m_enable_io = enable;
73 return *this;
74 }
75
78 return *this;
79 }
80
82 m_maskout_errors = maskout;
83 return *this;
84 }
85
86private:
87 bool m_enable_io = true;
88 bool m_set_lldb_globals = true;
89 bool m_maskout_errors = true;
90};
91
93public:
94 LoadScriptOptions() = default;
95
96 bool GetInitSession() const { return m_init_session; }
97 bool GetSilent() const { return m_silent; }
98
100 m_init_session = b;
101 return *this;
102 }
103
105 m_silent = b;
106 return *this;
107 }
108
109private:
110 bool m_init_session = false;
111 bool m_silent = false;
112};
113
115public:
116 /// Create an IO redirect. If IO is enabled, this will redirects the output
117 /// to the command return object if set or to the debugger otherwise. If IO
118 /// is disabled, it will redirect all IO to /dev/null.
119 static llvm::Expected<std::unique_ptr<ScriptInterpreterIORedirect>>
120 Create(bool enable_io, Debugger &debugger, CommandReturnObject *result);
121
123
126 return m_output_file_sp->GetUnlockedFileSP();
127 }
129 return m_error_file_sp->GetUnlockedFileSP();
130 }
131
132 /// Flush our output and error file handles.
133 void Flush();
134
135private:
136 ScriptInterpreterIORedirect(std::unique_ptr<File> input,
137 std::unique_ptr<File> output);
139
146};
147
149public:
167
168 ScriptInterpreter(Debugger &debugger, lldb::ScriptLanguage script_lang);
169
171
172 ~ScriptInterpreter() override = default;
173
174 virtual bool Interrupt() { return false; }
175
176 virtual bool ExecuteOneLine(
177 llvm::StringRef command, CommandReturnObject *result,
178 const ExecuteScriptOptions &options = ExecuteScriptOptions()) = 0;
179
180 virtual void ExecuteInterpreterLoop() = 0;
181
183 llvm::StringRef in_string, ScriptReturnType return_type, void *ret_value,
184 const ExecuteScriptOptions &options = ExecuteScriptOptions()) {
185 return true;
186 }
187
189 const char *in_string,
190 const ExecuteScriptOptions &options = ExecuteScriptOptions()) {
191 return Status::FromErrorString("not implemented");
192 }
193
194 virtual Status
196 return Status::FromErrorString("not implemented");
197 }
198
200 std::string &output,
201 bool has_extra_args,
202 bool is_callback) {
203 return Status::FromErrorString("not implemented");
204 }
205
207 std::string &output,
208 bool is_callback) {
209 return false;
210 }
211
212 virtual bool GenerateTypeScriptFunction(const char *oneliner,
213 std::string &output,
214 const void *name_token = nullptr) {
215 return false;
216 }
217
219 std::string &output,
220 const void *name_token = nullptr) {
221 return false;
222 }
223
225 std::string &output) {
226 return false;
227 }
228
229 virtual bool GenerateTypeSynthClass(StringList &input, std::string &output,
230 const void *name_token = nullptr) {
231 return false;
232 }
233
234 virtual bool GenerateTypeSynthClass(const char *oneliner, std::string &output,
235 const void *name_token = nullptr) {
236 return false;
237 }
238
240 CreateSyntheticScriptedProvider(const char *class_name,
241 lldb::ValueObjectSP valobj) {
243 }
244
246 CreateScriptCommandObject(const char *class_name) {
248 }
249
251 CreateFrameRecognizer(const char *class_name) {
253 }
254
260
261 virtual bool ShouldHide(const StructuredData::ObjectSP &implementor,
262 lldb::StackFrameSP frame_sp) {
263 return false;
264 }
265
270
273 const char *setting_name, lldb_private::Status &error) {
275 }
276
277 virtual Status GenerateFunction(const char *signature,
278 const StringList &input,
279 bool is_callback) {
280 return Status::FromErrorString("not implemented");
281 }
282
284 std::vector<std::reference_wrapper<BreakpointOptions>> &options,
285 CommandReturnObject &result);
286
287 virtual void
289 CommandReturnObject &result);
290
291 /// Set the specified text as the callback for the breakpoint.
293 std::vector<std::reference_wrapper<BreakpointOptions>> &bp_options_vec,
294 const char *callback_text);
295
297 const char *callback_text,
298 bool is_callback) {
299 return Status::FromErrorString("not implemented");
300 }
301
302 /// This one is for deserialization:
304 BreakpointOptions &bp_options,
305 std::unique_ptr<BreakpointOptions::CommandData> &data_up) {
306 return Status::FromErrorString("not implemented");
307 }
308
310 std::vector<std::reference_wrapper<BreakpointOptions>> &bp_options_vec,
311 const char *function_name, StructuredData::ObjectSP extra_args_sp);
312
313 /// Set a script function as the callback for the breakpoint.
314 virtual Status
316 const char *function_name,
317 StructuredData::ObjectSP extra_args_sp) {
318 return Status::FromErrorString("not implemented");
319 }
320
321 /// Set a one-liner as the callback for the watchpoint.
323 const char *user_input,
324 bool is_callback) {}
325
326 virtual bool GetScriptedSummary(const char *function_name,
327 lldb::ValueObjectSP valobj,
328 StructuredData::ObjectSP &callee_wrapper_sp,
329 const TypeSummaryOptions &options,
330 std::string &retval) {
331 return false;
332 }
333
334 // Calls the specified formatter matching Python function and returns its
335 // result (true if it's a match, false if we should keep looking for a
336 // matching formatter).
337 virtual bool FormatterCallbackFunction(const char *function_name,
338 lldb::TypeImplSP type_impl_sp) {
339 return true;
340 }
341
342 virtual void Clear() {
343 // Clean up any ref counts to SBObjects that might be in global variables
344 }
345
346 virtual size_t
348 uint32_t max) {
349 return 0;
350 }
351
352 virtual lldb::ValueObjectSP
353 GetChildAtIndex(const StructuredData::ObjectSP &implementor, uint32_t idx) {
354 return lldb::ValueObjectSP();
355 }
356
357 virtual llvm::Expected<uint32_t>
359 const char *child_name) {
360 return llvm::createStringError("Type has no child named '%s'", child_name);
361 }
362
363 virtual bool
365 return false;
366 }
367
369 const StructuredData::ObjectSP &implementor) {
370 return true;
371 }
372
373 virtual lldb::ValueObjectSP
375 return nullptr;
376 }
377
378 virtual ConstString
380 return ConstString();
381 }
382
383 virtual bool
384 RunScriptBasedCommand(const char *impl_function, llvm::StringRef args,
385 ScriptedCommandSynchronicity synchronicity,
387 Status &error,
388 const lldb_private::ExecutionContext &exe_ctx) {
389 return false;
390 }
391
393 StructuredData::GenericSP impl_obj_sp, llvm::StringRef args,
394 ScriptedCommandSynchronicity synchronicity,
396 const lldb_private::ExecutionContext &exe_ctx) {
397 return false;
398 }
399
401 StructuredData::GenericSP impl_obj_sp, Args& args,
402 ScriptedCommandSynchronicity synchronicity,
404 const lldb_private::ExecutionContext &exe_ctx) {
405 return false;
406 }
407
408 virtual std::optional<std::string>
410 Args &args) {
411 return std::nullopt;
412 }
413
416 StructuredData::GenericSP impl_obj_sp, std::vector<llvm::StringRef> &args,
417 size_t args_pos, size_t char_in_arg) {
418 return {};
419 }
420
423 StructuredData::GenericSP impl_obj_sp, llvm::StringRef &long_name,
424 size_t char_in_arg) {
425 return {};
426 }
427
428 virtual bool RunScriptFormatKeyword(const char *impl_function,
429 Process *process, std::string &output,
430 Status &error) {
431 error = Status::FromErrorString("unimplemented");
432 return false;
433 }
434
435 virtual bool RunScriptFormatKeyword(const char *impl_function, Thread *thread,
436 std::string &output, Status &error) {
437 error = Status::FromErrorString("unimplemented");
438 return false;
439 }
440
441 virtual bool RunScriptFormatKeyword(const char *impl_function, Target *target,
442 std::string &output, Status &error) {
443 error = Status::FromErrorString("unimplemented");
444 return false;
445 }
446
447 virtual bool RunScriptFormatKeyword(const char *impl_function,
448 StackFrame *frame, std::string &output,
449 Status &error) {
450 error = Status::FromErrorString("unimplemented");
451 return false;
452 }
453
454 virtual bool RunScriptFormatKeyword(const char *impl_function,
455 ValueObject *value, std::string &output,
456 Status &error) {
457 error = Status::FromErrorString("unimplemented");
458 return false;
459 }
460
461 virtual bool GetDocumentationForItem(const char *item, std::string &dest) {
462 dest.clear();
463 return false;
464 }
465
466 virtual bool
468 std::string &dest) {
469 dest.clear();
470 return false;
471 }
472
475 return {};
476 }
477
480 return {};
481 }
482
484 StructuredData::GenericSP cmd_obj_sp, ExecutionContext *exe_ctx,
485 llvm::StringRef long_option, llvm::StringRef value) {
486 return false;
487 }
488
489 virtual void
491
492 virtual uint32_t
494 return 0;
495 }
496
498 std::string &dest) {
499 dest.clear();
500 return false;
501 }
502
503 virtual bool CheckObjectExists(const char *name) { return false; }
504
505 virtual bool
506 LoadScriptingModule(const char *filename, const LoadScriptOptions &options,
508 StructuredData::ObjectSP *module_sp = nullptr,
509 FileSpec extra_search_dir = {},
510 lldb::TargetSP loaded_into_target_sp = {});
511
512 virtual bool IsReservedWord(const char *word) { return false; }
513
514 virtual std::unique_ptr<ScriptInterpreterLocker> AcquireInterpreterLock();
515
517
518 virtual llvm::Expected<unsigned>
519 GetMaxPositionalArgumentsForCallable(const llvm::StringRef &callable_name) {
520 return llvm::createStringError(
521 llvm::inconvertibleErrorCode(), "Unimplemented function");
522 }
523
524 static std::string LanguageToString(lldb::ScriptLanguage language);
525
526 static lldb::ScriptLanguage StringToLanguage(const llvm::StringRef &string);
527
529
533
537
541
544 return {};
545 }
546
549 return {};
550 }
551
555
559
563
566 return {};
567 }
568
573
575 GetDataExtractorFromSBData(const lldb::SBData &data) const;
576
578
579 Event *GetOpaqueTypeFromSBEvent(const lldb::SBEvent &event) const;
580
582
584
587
589 GetOpaqueTypeFromSBBreakpoint(const lldb::SBBreakpoint &breakpoint) const;
590
592 const lldb::SBBreakpointLocation &break_loc) const;
593
595 GetOpaqueTypeFromSBAttachInfo(const lldb::SBAttachInfo &attach_info) const;
596
598 GetOpaqueTypeFromSBLaunchInfo(const lldb::SBLaunchInfo &launch_info) const;
599
600 std::optional<MemoryRegionInfo> GetOpaqueTypeFromSBMemoryRegionInfo(
601 const lldb::SBMemoryRegionInfo &mem_region) const;
602
604 const lldb::SBExecutionContext &exe_ctx) const;
605
608
609protected:
612};
613
614} // namespace lldb_private
615
616#endif // LLDB_INTERPRETER_SCRIPTINTERPRETER_H
static llvm::raw_ostream & error(Stream &strm)
Represents a list of SBFrame objects.
Definition SBFrameList.h:31
A command line argument class.
Definition Args.h:33
"lldb/Breakpoint/BreakpointOptions.h" Class that manages the options on a breakpoint or breakpoint lo...
A uniqued constant string class.
Definition ConstString.h:40
A class to manage flag bits.
Definition Debugger.h:80
ExecuteScriptOptions & SetMaskoutErrors(bool maskout)
ExecuteScriptOptions & SetSetLLDBGlobals(bool set)
ExecuteScriptOptions & SetEnableIO(bool enable)
"lldb/Target/ExecutionContext.h" A class that contains an execution context.
A file utility class.
Definition FileSpec.h:57
LoadScriptOptions & SetInitSession(bool b)
LoadScriptOptions & SetSilent(bool b)
std::recursive_mutex Mutex
Definition StreamFile.h:77
A plug-in interface definition class for debugging a process.
Definition Process.h:354
void Flush()
Flush our output and error file handles.
ScriptInterpreterIORedirect(std::unique_ptr< File > input, std::unique_ptr< File > output)
static llvm::Expected< std::unique_ptr< ScriptInterpreterIORedirect > > Create(bool enable_io, Debugger &debugger, CommandReturnObject *result)
Create an IO redirect.
const ScriptInterpreterLocker & operator=(const ScriptInterpreterLocker &)=delete
ScriptInterpreterLocker(const ScriptInterpreterLocker &)=delete
virtual ~ScriptInterpreterLocker()=default
virtual bool SetOptionValueForCommandObject(StructuredData::GenericSP cmd_obj_sp, ExecutionContext *exe_ctx, llvm::StringRef long_option, llvm::StringRef value)
static lldb::ScriptLanguage StringToLanguage(const llvm::StringRef &string)
virtual void CollectDataForBreakpointCommandCallback(std::vector< std::reference_wrapper< BreakpointOptions > > &options, CommandReturnObject &result)
virtual lldb::ValueObjectListSP GetRecognizedArguments(const StructuredData::ObjectSP &implementor, lldb::StackFrameSP frame_sp)
const char * GetScriptInterpreterPtyName()
lldb::ProcessAttachInfoSP GetOpaqueTypeFromSBAttachInfo(const lldb::SBAttachInfo &attach_info) const
virtual Status ExecuteMultipleLines(const char *in_string, const ExecuteScriptOptions &options=ExecuteScriptOptions())
lldb::StreamSP GetOpaqueTypeFromSBStream(const lldb::SBStream &stream) const
virtual StructuredData::GenericSP CreateScriptCommandObject(const char *class_name)
virtual size_t CalculateNumChildren(const StructuredData::ObjectSP &implementor, uint32_t max)
virtual bool GenerateTypeScriptFunction(const char *oneliner, std::string &output, const void *name_token=nullptr)
virtual bool RunScriptFormatKeyword(const char *impl_function, Target *target, std::string &output, Status &error)
virtual bool GenerateTypeScriptFunction(StringList &input, std::string &output, const void *name_token=nullptr)
virtual lldb::ScriptedProcessInterfaceUP CreateScriptedProcessInterface()
virtual lldb::ScriptedFrameInterfaceSP CreateScriptedFrameInterface()
virtual Status ExportFunctionDefinitionToInterpreter(StringList &function_def)
lldb::ExecutionContextRefSP GetOpaqueTypeFromSBExecutionContext(const lldb::SBExecutionContext &exe_ctx) const
~ScriptInterpreter() override=default
virtual lldb::OperatingSystemInterfaceSP CreateOperatingSystemInterface()
virtual StructuredData::ObjectSP CreateSyntheticScriptedProvider(const char *class_name, lldb::ValueObjectSP valobj)
SymbolContext GetOpaqueTypeFromSBSymbolContext(const lldb::SBSymbolContext &sym_ctx) const
virtual Status SetBreakpointCommandCallbackFunction(BreakpointOptions &bp_options, const char *function_name, StructuredData::ObjectSP extra_args_sp)
Set a script function as the callback for the breakpoint.
virtual llvm::Expected< unsigned > GetMaxPositionalArgumentsForCallable(const llvm::StringRef &callable_name)
virtual bool ExecuteOneLineWithReturn(llvm::StringRef in_string, ScriptReturnType return_type, void *ret_value, const ExecuteScriptOptions &options=ExecuteScriptOptions())
virtual bool GenerateTypeSynthClass(StringList &input, std::string &output, const void *name_token=nullptr)
virtual bool RunScriptBasedCommand(const char *impl_function, llvm::StringRef args, ScriptedCommandSynchronicity synchronicity, lldb_private::CommandReturnObject &cmd_retobj, Status &error, const lldb_private::ExecutionContext &exe_ctx)
virtual void ExecuteInterpreterLoop()=0
virtual lldb::ScriptedBreakpointInterfaceSP CreateScriptedBreakpointInterface()
virtual StructuredData::GenericSP CreateFrameRecognizer(const char *class_name)
virtual bool GenerateScriptAliasFunction(StringList &input, std::string &output)
virtual bool MightHaveChildrenSynthProviderInstance(const StructuredData::ObjectSP &implementor)
virtual bool GenerateWatchpointCommandCallbackData(StringList &input, std::string &output, bool is_callback)
virtual StructuredData::DictionarySP GetDynamicSettings(StructuredData::ObjectSP plugin_module_sp, Target *target, const char *setting_name, lldb_private::Status &error)
virtual StructuredData::DictionarySP HandleOptionArgumentCompletionForScriptedCommand(StructuredData::GenericSP impl_obj_sp, llvm::StringRef &long_name, size_t char_in_arg)
virtual Status GenerateFunction(const char *signature, const StringList &input, bool is_callback)
virtual lldb::ValueObjectSP GetChildAtIndex(const StructuredData::ObjectSP &implementor, uint32_t idx)
Event * GetOpaqueTypeFromSBEvent(const lldb::SBEvent &event) const
virtual std::optional< std::string > GetRepeatCommandForScriptedCommand(StructuredData::GenericSP impl_obj_sp, Args &args)
virtual void SetWatchpointCommandCallback(WatchpointOptions *wp_options, const char *user_input, bool is_callback)
Set a one-liner as the callback for the watchpoint.
Status SetBreakpointCommandCallback(std::vector< std::reference_wrapper< BreakpointOptions > > &bp_options_vec, const char *callback_text)
Set the specified text as the callback for the breakpoint.
lldb::ProcessLaunchInfoSP GetOpaqueTypeFromSBLaunchInfo(const lldb::SBLaunchInfo &launch_info) const
virtual lldb::ValueObjectSP GetSyntheticValue(const StructuredData::ObjectSP &implementor)
virtual bool ExecuteOneLine(llvm::StringRef command, CommandReturnObject *result, const ExecuteScriptOptions &options=ExecuteScriptOptions())=0
virtual bool LoadScriptingModule(const char *filename, const LoadScriptOptions &options, lldb_private::Status &error, StructuredData::ObjectSP *module_sp=nullptr, FileSpec extra_search_dir={}, lldb::TargetSP loaded_into_target_sp={})
virtual llvm::Expected< uint32_t > GetIndexOfChildWithName(const StructuredData::ObjectSP &implementor, const char *child_name)
virtual bool RunScriptFormatKeyword(const char *impl_function, StackFrame *frame, std::string &output, Status &error)
virtual Status GenerateBreakpointCommandCallbackData(StringList &input, std::string &output, bool has_extra_args, bool is_callback)
static std::string LanguageToString(lldb::ScriptLanguage language)
virtual bool RunScriptFormatKeyword(const char *impl_function, ValueObject *value, std::string &output, Status &error)
Status GetStatusFromSBError(const lldb::SBError &error) const
std::optional< MemoryRegionInfo > GetOpaqueTypeFromSBMemoryRegionInfo(const lldb::SBMemoryRegionInfo &mem_region) const
virtual std::unique_ptr< ScriptInterpreterLocker > AcquireInterpreterLock()
virtual bool GetDocumentationForItem(const char *item, std::string &dest)
virtual StructuredData::DictionarySP GetInterpreterInfo()
lldb::BreakpointLocationSP GetOpaqueTypeFromSBBreakpointLocation(const lldb::SBBreakpointLocation &break_loc) const
virtual bool UpdateSynthProviderInstance(const StructuredData::ObjectSP &implementor)
virtual lldb::ScriptedStopHookInterfaceSP CreateScriptedStopHookInterface()
virtual StructuredData::ObjectSP LoadPluginModule(const FileSpec &file_spec, lldb_private::Status &error)
virtual bool RunScriptBasedParsedCommand(StructuredData::GenericSP impl_obj_sp, Args &args, ScriptedCommandSynchronicity synchronicity, lldb_private::CommandReturnObject &cmd_retobj, Status &error, const lldb_private::ExecutionContext &exe_ctx)
Status SetBreakpointCommandCallbackFunction(std::vector< std::reference_wrapper< BreakpointOptions > > &bp_options_vec, const char *function_name, StructuredData::ObjectSP extra_args_sp)
virtual bool GenerateTypeSynthClass(const char *oneliner, std::string &output, const void *name_token=nullptr)
virtual StructuredData::ObjectSP CreateStructuredDataFromScriptObject(ScriptObject obj)
virtual StructuredData::ObjectSP GetOptionsForCommandObject(StructuredData::GenericSP cmd_obj_sp)
virtual StructuredData::ObjectSP GetArgumentsForCommandObject(StructuredData::GenericSP cmd_obj_sp)
virtual void OptionParsingStartedForCommandObject(StructuredData::GenericSP cmd_obj_sp)
virtual bool GetScriptedSummary(const char *function_name, lldb::ValueObjectSP valobj, StructuredData::ObjectSP &callee_wrapper_sp, const TypeSummaryOptions &options, std::string &retval)
virtual Status SetBreakpointCommandCallback(BreakpointOptions &bp_options, std::unique_ptr< BreakpointOptions::CommandData > &data_up)
This one is for deserialization:
lldb::BreakpointSP GetOpaqueTypeFromSBBreakpoint(const lldb::SBBreakpoint &breakpoint) const
virtual bool GetLongHelpForCommandObject(StructuredData::GenericSP cmd_obj_sp, std::string &dest)
virtual lldb::ScriptedThreadPlanInterfaceSP CreateScriptedThreadPlanInterface()
virtual bool RunScriptFormatKeyword(const char *impl_function, Thread *thread, std::string &output, Status &error)
virtual bool CheckObjectExists(const char *name)
virtual bool RunScriptBasedCommand(StructuredData::GenericSP impl_obj_sp, llvm::StringRef args, ScriptedCommandSynchronicity synchronicity, lldb_private::CommandReturnObject &cmd_retobj, Status &error, const lldb_private::ExecutionContext &exe_ctx)
virtual bool FormatterCallbackFunction(const char *function_name, lldb::TypeImplSP type_impl_sp)
virtual ConstString GetSyntheticTypeName(const StructuredData::ObjectSP &implementor)
lldb::ScriptLanguage GetLanguage()
virtual uint32_t GetFlagsForCommandObject(StructuredData::GenericSP cmd_obj_sp)
lldb::StackFrameListSP GetOpaqueTypeFromSBFrameList(const lldb::SBFrameList &exe_ctx) const
virtual bool GetShortHelpForCommandObject(StructuredData::GenericSP cmd_obj_sp, std::string &dest)
lldb::StackFrameSP GetOpaqueTypeFromSBFrame(const lldb::SBFrame &frame) const
virtual bool ShouldHide(const StructuredData::ObjectSP &implementor, lldb::StackFrameSP frame_sp)
virtual bool IsReservedWord(const char *word)
virtual StructuredData::DictionarySP HandleArgumentCompletionForScriptedCommand(StructuredData::GenericSP impl_obj_sp, std::vector< llvm::StringRef > &args, size_t args_pos, size_t char_in_arg)
lldb::DataExtractorSP GetDataExtractorFromSBData(const lldb::SBData &data) const
virtual lldb::ScriptedPlatformInterfaceUP GetScriptedPlatformInterface()
virtual bool RunScriptFormatKeyword(const char *impl_function, Process *process, std::string &output, Status &error)
virtual lldb::ScriptedThreadInterfaceSP CreateScriptedThreadInterface()
virtual Status SetBreakpointCommandCallback(BreakpointOptions &bp_options, const char *callback_text, bool is_callback)
virtual lldb::ScriptedFrameProviderInterfaceSP CreateScriptedFrameProviderInterface()
ScriptInterpreter(Debugger &debugger, lldb::ScriptLanguage script_lang)
virtual void CollectDataForWatchpointCommandCallback(WatchpointOptions *wp_options, CommandReturnObject &result)
This base class provides an interface to stack frames.
Definition StackFrame.h:44
An error handling class.
Definition Status.h:118
static Status FromErrorString(const char *str)
Definition Status.h:141
std::shared_ptr< Generic > GenericSP
std::shared_ptr< Dictionary > DictionarySP
std::shared_ptr< Object > ObjectSP
Defines a symbol context baton that can be handed other debug core functions.
"lldb/Core/ThreadedCommunication.h" Variation of Communication that supports threaded reads.
"lldb/Breakpoint/WatchpointOptions.h" Class that manages the options on a watchpoint.
A class that represents a running process on the host machine.
std::unique_ptr< lldb_private::ScriptedPlatformInterface > ScriptedPlatformInterfaceUP
ScriptLanguage
Script interpreter types.
std::shared_ptr< lldb_private::ScriptedStopHookInterface > ScriptedStopHookInterfaceSP
std::shared_ptr< lldb_private::StackFrame > StackFrameSP
std::shared_ptr< lldb_private::BreakpointLocation > BreakpointLocationSP
std::shared_ptr< lldb_private::ScriptedThreadPlanInterface > ScriptedThreadPlanInterfaceSP
std::shared_ptr< lldb_private::ValueObject > ValueObjectSP
std::shared_ptr< lldb_private::ProcessAttachInfo > ProcessAttachInfoSP
std::shared_ptr< lldb_private::OperatingSystemInterface > OperatingSystemInterfaceSP
std::shared_ptr< lldb_private::Stream > StreamSP
std::shared_ptr< lldb_private::Breakpoint > BreakpointSP
std::shared_ptr< lldb_private::ScriptedBreakpointInterface > ScriptedBreakpointInterfaceSP
std::shared_ptr< lldb_private::ScriptedThreadInterface > ScriptedThreadInterfaceSP
std::shared_ptr< lldb_private::ValueObjectList > ValueObjectListSP
std::shared_ptr< lldb_private::ScriptedFrameProviderInterface > ScriptedFrameProviderInterfaceSP
std::shared_ptr< lldb_private::LockableStreamFile > LockableStreamFileSP
std::shared_ptr< lldb_private::TypeImpl > TypeImplSP
std::shared_ptr< lldb_private::Target > TargetSP
std::shared_ptr< lldb_private::File > FileSP
std::shared_ptr< lldb_private::DataExtractor > DataExtractorSP
std::unique_ptr< lldb_private::ScriptedProcessInterface > ScriptedProcessInterfaceUP
std::shared_ptr< lldb_private::ProcessLaunchInfo > ProcessLaunchInfoSP
std::shared_ptr< lldb_private::StackFrameList > StackFrameListSP
std::shared_ptr< lldb_private::ScriptedFrameInterface > ScriptedFrameInterfaceSP
std::shared_ptr< lldb_private::ExecutionContextRef > ExecutionContextRefSP