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"
24#include "lldb/API/SBThread.h"
40#include "lldb/Utility/Status.h"
42#include "lldb/lldb-private.h"
43#include <optional>
44
45namespace lldb_private {
46
48public:
50
51 virtual ~ScriptInterpreterLocker() = default;
52
53private:
57};
58
60public:
62
63 bool GetEnableIO() const { return m_enable_io; }
64
65 bool GetSetLLDBGlobals() const { return m_set_lldb_globals; }
66
67 // If this is true then any exceptions raised by the script will be
68 // cleared with PyErr_Clear(). If false then they will be left for
69 // the caller to clean up
70 bool GetMaskoutErrors() const { return m_maskout_errors; }
71
73 m_enable_io = enable;
74 return *this;
75 }
76
79 return *this;
80 }
81
83 m_maskout_errors = maskout;
84 return *this;
85 }
86
87private:
88 bool m_enable_io = true;
89 bool m_set_lldb_globals = true;
90 bool m_maskout_errors = true;
91};
92
94public:
95 LoadScriptOptions() = default;
96
97 bool GetInitSession() const { return m_init_session; }
98 bool GetSilent() const { return m_silent; }
99
101 m_init_session = b;
102 return *this;
103 }
104
106 m_silent = b;
107 return *this;
108 }
109
110private:
111 bool m_init_session = false;
112 bool m_silent = false;
113};
114
116public:
117 /// Create an IO redirect. If IO is enabled, this will redirects the output
118 /// to the command return object if set or to the debugger otherwise. If IO
119 /// is disabled, it will redirect all IO to /dev/null.
120 static llvm::Expected<std::unique_ptr<ScriptInterpreterIORedirect>>
121 Create(bool enable_io, Debugger &debugger, CommandReturnObject *result);
122
124
127 return m_output_file_sp->GetUnlockedFileSP();
128 }
130 return m_error_file_sp->GetUnlockedFileSP();
131 }
132
133 /// Flush our output and error file handles.
134 void Flush();
135
136private:
137 ScriptInterpreterIORedirect(std::unique_ptr<File> input,
138 std::unique_ptr<File> output);
140
147};
148
150public:
168
169 ScriptInterpreter(Debugger &debugger, lldb::ScriptLanguage script_lang);
170
172
173 ~ScriptInterpreter() override = default;
174
175 virtual bool Interrupt() { return false; }
176
177 virtual bool ExecuteOneLine(
178 llvm::StringRef command, CommandReturnObject *result,
179 const ExecuteScriptOptions &options = ExecuteScriptOptions()) = 0;
180
181 virtual void ExecuteInterpreterLoop() = 0;
182
184 llvm::StringRef in_string, ScriptReturnType return_type, void *ret_value,
185 const ExecuteScriptOptions &options = ExecuteScriptOptions()) {
186 return true;
187 }
188
190 const char *in_string,
191 const ExecuteScriptOptions &options = ExecuteScriptOptions()) {
192 return Status::FromErrorString("not implemented");
193 }
194
195 virtual Status
197 return Status::FromErrorString("not implemented");
198 }
199
201 std::string &output,
202 bool has_extra_args,
203 bool is_callback) {
204 return Status::FromErrorString("not implemented");
205 }
206
208 std::string &output,
209 bool is_callback) {
210 return false;
211 }
212
213 virtual bool GenerateTypeScriptFunction(const char *oneliner,
214 std::string &output,
215 const void *name_token = nullptr) {
216 return false;
217 }
218
220 std::string &output,
221 const void *name_token = nullptr) {
222 return false;
223 }
224
226 std::string &output) {
227 return false;
228 }
229
230 virtual bool GenerateTypeSynthClass(StringList &input, std::string &output,
231 const void *name_token = nullptr) {
232 return false;
233 }
234
235 virtual bool GenerateTypeSynthClass(const char *oneliner, std::string &output,
236 const void *name_token = nullptr) {
237 return false;
238 }
239
241 CreateSyntheticScriptedProvider(const char *class_name,
242 lldb::ValueObjectSP valobj) {
244 }
245
247 CreateScriptCommandObject(const char *class_name) {
249 }
250
252 CreateFrameRecognizer(const char *class_name) {
254 }
255
261
262 virtual bool ShouldHide(const StructuredData::ObjectSP &implementor,
263 lldb::StackFrameSP frame_sp) {
264 return false;
265 }
266
271
274 const char *setting_name, lldb_private::Status &error) {
276 }
277
278 virtual Status GenerateFunction(const char *signature,
279 const StringList &input,
280 bool is_callback) {
281 return Status::FromErrorString("not implemented");
282 }
283
285 std::vector<std::reference_wrapper<BreakpointOptions>> &options,
286 CommandReturnObject &result);
287
288 virtual void
290 CommandReturnObject &result);
291
292 /// Set the specified text as the callback for the breakpoint.
294 std::vector<std::reference_wrapper<BreakpointOptions>> &bp_options_vec,
295 const char *callback_text);
296
298 const char *callback_text,
299 bool is_callback) {
300 return Status::FromErrorString("not implemented");
301 }
302
303 /// This one is for deserialization:
305 BreakpointOptions &bp_options,
306 std::unique_ptr<BreakpointOptions::CommandData> &data_up) {
307 return Status::FromErrorString("not implemented");
308 }
309
311 std::vector<std::reference_wrapper<BreakpointOptions>> &bp_options_vec,
312 const char *function_name, StructuredData::ObjectSP extra_args_sp);
313
314 /// Set a script function as the callback for the breakpoint.
315 virtual Status
317 const char *function_name,
318 StructuredData::ObjectSP extra_args_sp) {
319 return Status::FromErrorString("not implemented");
320 }
321
322 /// Set a one-liner as the callback for the watchpoint.
324 const char *user_input,
325 bool is_callback) {}
326
327 virtual bool GetScriptedSummary(const char *function_name,
328 lldb::ValueObjectSP valobj,
329 StructuredData::ObjectSP &callee_wrapper_sp,
330 const TypeSummaryOptions &options,
331 std::string &retval) {
332 return false;
333 }
334
335 // Calls the specified formatter matching Python function and returns its
336 // result (true if it's a match, false if we should keep looking for a
337 // matching formatter).
338 virtual bool FormatterCallbackFunction(const char *function_name,
339 lldb::TypeImplSP type_impl_sp) {
340 return true;
341 }
342
343 virtual void Clear() {
344 // Clean up any ref counts to SBObjects that might be in global variables
345 }
346
347 virtual size_t
349 uint32_t max) {
350 return 0;
351 }
352
353 virtual lldb::ValueObjectSP
354 GetChildAtIndex(const StructuredData::ObjectSP &implementor, uint32_t idx) {
355 return lldb::ValueObjectSP();
356 }
357
358 virtual llvm::Expected<uint32_t>
360 const char *child_name) {
361 return llvm::createStringError("Type has no child named '%s'", child_name);
362 }
363
364 virtual bool
366 return false;
367 }
368
370 const StructuredData::ObjectSP &implementor) {
371 return true;
372 }
373
374 virtual lldb::ValueObjectSP
376 return nullptr;
377 }
378
379 virtual ConstString
381 return ConstString();
382 }
383
384 virtual bool
385 RunScriptBasedCommand(const char *impl_function, llvm::StringRef args,
386 ScriptedCommandSynchronicity synchronicity,
388 Status &error,
389 const lldb_private::ExecutionContext &exe_ctx) {
390 return false;
391 }
392
394 StructuredData::GenericSP impl_obj_sp, llvm::StringRef args,
395 ScriptedCommandSynchronicity synchronicity,
397 const lldb_private::ExecutionContext &exe_ctx) {
398 return false;
399 }
400
402 StructuredData::GenericSP impl_obj_sp, Args& args,
403 ScriptedCommandSynchronicity synchronicity,
405 const lldb_private::ExecutionContext &exe_ctx) {
406 return false;
407 }
408
409 virtual std::optional<std::string>
411 Args &args) {
412 return std::nullopt;
413 }
414
417 StructuredData::GenericSP impl_obj_sp, std::vector<llvm::StringRef> &args,
418 size_t args_pos, size_t char_in_arg) {
419 return {};
420 }
421
424 StructuredData::GenericSP impl_obj_sp, llvm::StringRef &long_name,
425 size_t char_in_arg) {
426 return {};
427 }
428
429 virtual bool RunScriptFormatKeyword(const char *impl_function,
430 Process *process, std::string &output,
431 Status &error) {
432 error = Status::FromErrorString("unimplemented");
433 return false;
434 }
435
436 virtual bool RunScriptFormatKeyword(const char *impl_function, Thread *thread,
437 std::string &output, Status &error) {
438 error = Status::FromErrorString("unimplemented");
439 return false;
440 }
441
442 virtual bool RunScriptFormatKeyword(const char *impl_function, Target *target,
443 std::string &output, Status &error) {
444 error = Status::FromErrorString("unimplemented");
445 return false;
446 }
447
448 virtual bool RunScriptFormatKeyword(const char *impl_function,
449 StackFrame *frame, std::string &output,
450 Status &error) {
451 error = Status::FromErrorString("unimplemented");
452 return false;
453 }
454
455 virtual bool RunScriptFormatKeyword(const char *impl_function,
456 ValueObject *value, std::string &output,
457 Status &error) {
458 error = Status::FromErrorString("unimplemented");
459 return false;
460 }
461
462 virtual bool GetDocumentationForItem(const char *item, std::string &dest) {
463 dest.clear();
464 return false;
465 }
466
467 virtual bool
469 std::string &dest) {
470 dest.clear();
471 return false;
472 }
473
476 return {};
477 }
478
481 return {};
482 }
483
485 StructuredData::GenericSP cmd_obj_sp, ExecutionContext *exe_ctx,
486 llvm::StringRef long_option, llvm::StringRef value) {
487 return false;
488 }
489
490 virtual void
492
493 virtual uint32_t
495 return 0;
496 }
497
499 std::string &dest) {
500 dest.clear();
501 return false;
502 }
503
504 virtual bool CheckObjectExists(const char *name) { return false; }
505
506 virtual bool
507 LoadScriptingModule(const char *filename, const LoadScriptOptions &options,
509 StructuredData::ObjectSP *module_sp = nullptr,
510 FileSpec extra_search_dir = {},
511 lldb::TargetSP loaded_into_target_sp = {});
512
513 virtual bool IsReservedWord(const char *word) { return false; }
514
515 virtual std::unique_ptr<ScriptInterpreterLocker> AcquireInterpreterLock();
516
518
519 virtual llvm::Expected<unsigned>
520 GetMaxPositionalArgumentsForCallable(const llvm::StringRef &callable_name) {
521 return llvm::createStringError(
522 llvm::inconvertibleErrorCode(), "Unimplemented function");
523 }
524
525 static std::string LanguageToString(lldb::ScriptLanguage language);
526
527 static lldb::ScriptLanguage StringToLanguage(const llvm::StringRef &string);
528
530
534
538
542
545 return {};
546 }
547
550 return {};
551 }
552
556
560
564
567 return {};
568 }
569
574
576 GetDataExtractorFromSBData(const lldb::SBData &data) const;
577
579
580 Event *GetOpaqueTypeFromSBEvent(const lldb::SBEvent &event) const;
581
583
585
587
590
592 GetOpaqueTypeFromSBBreakpoint(const lldb::SBBreakpoint &breakpoint) const;
593
595 const lldb::SBBreakpointLocation &break_loc) const;
596
598 GetOpaqueTypeFromSBAttachInfo(const lldb::SBAttachInfo &attach_info) const;
599
601 GetOpaqueTypeFromSBLaunchInfo(const lldb::SBLaunchInfo &launch_info) const;
602
603 std::optional<MemoryRegionInfo> GetOpaqueTypeFromSBMemoryRegionInfo(
604 const lldb::SBMemoryRegionInfo &mem_region) const;
605
607 const lldb::SBExecutionContext &exe_ctx) const;
608
611
612protected:
615};
616
617} // namespace lldb_private
618
619#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)
lldb::ThreadSP GetOpaqueTypeFromSBThread(const lldb::SBThread &exe_ctx) const
virtual bool MightHaveChildrenSynthProviderInstance(const StructuredData::ObjectSP &implementor)
std::optional< MemoryRegionInfo > GetOpaqueTypeFromSBMemoryRegionInfo(const lldb::SBMemoryRegionInfo &mem_region) const
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
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::Thread > ThreadSP
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