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
14#include "lldb/API/SBData.h"
15#include "lldb/API/SBError.h"
30#include "lldb/Utility/Status.h"
32#include "lldb/lldb-private.h"
33#include <optional>
34
35namespace lldb_private {
36
38public:
40
41 virtual ~ScriptInterpreterLocker() = default;
42
43private:
47};
48
50public:
52
53 bool GetEnableIO() const { return m_enable_io; }
54
55 bool GetSetLLDBGlobals() const { return m_set_lldb_globals; }
56
57 // If this is true then any exceptions raised by the script will be
58 // cleared with PyErr_Clear(). If false then they will be left for
59 // the caller to clean up
60 bool GetMaskoutErrors() const { return m_maskout_errors; }
61
63 m_enable_io = enable;
64 return *this;
65 }
66
69 return *this;
70 }
71
73 m_maskout_errors = maskout;
74 return *this;
75 }
76
77private:
78 bool m_enable_io = true;
79 bool m_set_lldb_globals = true;
80 bool m_maskout_errors = true;
81};
82
84public:
85 LoadScriptOptions() = default;
86
87 bool GetInitSession() const { return m_init_session; }
88 bool GetSilent() const { return m_silent; }
89
92 return *this;
93 }
94
96 m_silent = b;
97 return *this;
98 }
99
100private:
101 bool m_init_session = false;
102 bool m_silent = false;
103};
104
106public:
107 /// Create an IO redirect. If IO is enabled, this will redirects the output
108 /// to the command return object if set or to the debugger otherwise. If IO
109 /// is disabled, it will redirect all IO to /dev/null.
110 static llvm::Expected<std::unique_ptr<ScriptInterpreterIORedirect>>
111 Create(bool enable_io, Debugger &debugger, CommandReturnObject *result);
112
114
116 lldb::FileSP GetOutputFile() const { return m_output_file_sp->GetFileSP(); }
117 lldb::FileSP GetErrorFile() const { return m_error_file_sp->GetFileSP(); }
118
119 /// Flush our output and error file handles.
120 void Flush();
121
122private:
123 ScriptInterpreterIORedirect(std::unique_ptr<File> input,
124 std::unique_ptr<File> output);
126
132};
133
135public:
152 };
153
154 ScriptInterpreter(Debugger &debugger, lldb::ScriptLanguage script_lang);
155
157
158 ~ScriptInterpreter() override = default;
159
160 virtual bool Interrupt() { return false; }
161
162 virtual bool ExecuteOneLine(
163 llvm::StringRef command, CommandReturnObject *result,
164 const ExecuteScriptOptions &options = ExecuteScriptOptions()) = 0;
165
166 virtual void ExecuteInterpreterLoop() = 0;
167
169 llvm::StringRef in_string, ScriptReturnType return_type, void *ret_value,
170 const ExecuteScriptOptions &options = ExecuteScriptOptions()) {
171 return true;
172 }
173
175 const char *in_string,
176 const ExecuteScriptOptions &options = ExecuteScriptOptions()) {
178 error.SetErrorString("not implemented");
179 return error;
180 }
181
182 virtual Status
185 error.SetErrorString("not implemented");
186 return error;
187 }
188
190 std::string &output,
191 bool has_extra_args,
192 bool is_callback) {
194 error.SetErrorString("not implemented");
195 return error;
196 }
197
199 std::string &output,
200 bool is_callback) {
201 return false;
202 }
203
204 virtual bool GenerateTypeScriptFunction(const char *oneliner,
205 std::string &output,
206 const void *name_token = nullptr) {
207 return false;
208 }
209
211 std::string &output,
212 const void *name_token = nullptr) {
213 return false;
214 }
215
217 std::string &output) {
218 return false;
219 }
220
221 virtual bool GenerateTypeSynthClass(StringList &input, std::string &output,
222 const void *name_token = nullptr) {
223 return false;
224 }
225
226 virtual bool GenerateTypeSynthClass(const char *oneliner, std::string &output,
227 const void *name_token = nullptr) {
228 return false;
229 }
230
232 CreateSyntheticScriptedProvider(const char *class_name,
233 lldb::ValueObjectSP valobj) {
235 }
236
238 CreateScriptCommandObject(const char *class_name) {
240 }
241
243 CreateFrameRecognizer(const char *class_name) {
245 }
246
248 const StructuredData::ObjectSP &implementor,
249 lldb::StackFrameSP frame_sp) {
251 }
252
254 CreateScriptedThreadPlan(const char *class_name,
255 const StructuredDataImpl &args_data,
256 std::string &error_str,
257 lldb::ThreadPlanSP thread_plan_sp) {
259 }
260
261 virtual bool
263 Event *event, bool &script_error) {
264 script_error = true;
265 return true;
266 }
267
268 virtual bool
270 Event *event, bool &script_error) {
271 script_error = true;
272 return true;
273 }
274
275 virtual bool
277 bool &script_error) {
278 script_error = true;
279 return true;
280 }
281
282 virtual lldb::StateType
284 bool &script_error) {
285 script_error = true;
287 }
288
289 virtual bool
291 lldb_private::Stream *stream,
292 bool &script_error) {
293 script_error = true;
294 return false;
295 }
296
298 CreateScriptedBreakpointResolver(const char *class_name,
299 const StructuredDataImpl &args_data,
300 lldb::BreakpointSP &bkpt_sp) {
302 }
303
304 virtual bool
306 SymbolContext *sym_ctx)
307 {
308 return false;
309 }
310
311 virtual lldb::SearchDepth
313 {
315 }
316
318 CreateScriptedStopHook(lldb::TargetSP target_sp, const char *class_name,
319 const StructuredDataImpl &args_data, Status &error) {
320 error.SetErrorString("Creating scripted stop-hooks with the current "
321 "script interpreter is not supported.");
323 }
324
325 // This dispatches to the handle_stop method of the stop-hook class. It
326 // returns a "should_stop" bool.
327 virtual bool
329 ExecutionContext &exc_ctx,
330 lldb::StreamSP stream_sp) {
331 return true;
332 }
333
337 }
338
341 const char *setting_name, lldb_private::Status &error) {
343 }
344
345 virtual Status GenerateFunction(const char *signature,
346 const StringList &input,
347 bool is_callback) {
349 error.SetErrorString("unimplemented");
350 return error;
351 }
352
354 std::vector<std::reference_wrapper<BreakpointOptions>> &options,
355 CommandReturnObject &result);
356
357 virtual void
359 CommandReturnObject &result);
360
361 /// Set the specified text as the callback for the breakpoint.
363 std::vector<std::reference_wrapper<BreakpointOptions>> &bp_options_vec,
364 const char *callback_text);
365
367 const char *callback_text,
368 bool is_callback) {
370 error.SetErrorString("unimplemented");
371 return error;
372 }
373
374 /// This one is for deserialization:
376 BreakpointOptions &bp_options,
377 std::unique_ptr<BreakpointOptions::CommandData> &data_up) {
379 error.SetErrorString("unimplemented");
380 return error;
381 }
382
384 std::vector<std::reference_wrapper<BreakpointOptions>> &bp_options_vec,
385 const char *function_name, StructuredData::ObjectSP extra_args_sp);
386
387 /// Set a script function as the callback for the breakpoint.
388 virtual Status
390 const char *function_name,
391 StructuredData::ObjectSP extra_args_sp) {
393 error.SetErrorString("unimplemented");
394 return error;
395 }
396
397 /// Set a one-liner as the callback for the watchpoint.
399 const char *user_input,
400 bool is_callback) {}
401
402 virtual bool GetScriptedSummary(const char *function_name,
403 lldb::ValueObjectSP valobj,
404 StructuredData::ObjectSP &callee_wrapper_sp,
405 const TypeSummaryOptions &options,
406 std::string &retval) {
407 return false;
408 }
409
410 // Calls the specified formatter matching Python function and returns its
411 // result (true if it's a match, false if we should keep looking for a
412 // matching formatter).
413 virtual bool FormatterCallbackFunction(const char *function_name,
414 lldb::TypeImplSP type_impl_sp) {
415 return true;
416 }
417
418 virtual void Clear() {
419 // Clean up any ref counts to SBObjects that might be in global variables
420 }
421
422 virtual size_t
424 uint32_t max) {
425 return 0;
426 }
427
428 virtual lldb::ValueObjectSP
429 GetChildAtIndex(const StructuredData::ObjectSP &implementor, uint32_t idx) {
430 return lldb::ValueObjectSP();
431 }
432
433 virtual int
435 const char *child_name) {
436 return UINT32_MAX;
437 }
438
439 virtual bool
441 return false;
442 }
443
445 const StructuredData::ObjectSP &implementor) {
446 return true;
447 }
448
449 virtual lldb::ValueObjectSP
451 return nullptr;
452 }
453
454 virtual ConstString
456 return ConstString();
457 }
458
459 virtual bool
460 RunScriptBasedCommand(const char *impl_function, llvm::StringRef args,
461 ScriptedCommandSynchronicity synchronicity,
463 Status &error,
464 const lldb_private::ExecutionContext &exe_ctx) {
465 return false;
466 }
467
469 StructuredData::GenericSP impl_obj_sp, llvm::StringRef args,
470 ScriptedCommandSynchronicity synchronicity,
472 const lldb_private::ExecutionContext &exe_ctx) {
473 return false;
474 }
475
477 StructuredData::GenericSP impl_obj_sp, Args& args,
478 ScriptedCommandSynchronicity synchronicity,
480 const lldb_private::ExecutionContext &exe_ctx) {
481 return false;
482 }
483
484 virtual bool RunScriptFormatKeyword(const char *impl_function,
485 Process *process, std::string &output,
486 Status &error) {
487 error.SetErrorString("unimplemented");
488 return false;
489 }
490
491 virtual bool RunScriptFormatKeyword(const char *impl_function, Thread *thread,
492 std::string &output, Status &error) {
493 error.SetErrorString("unimplemented");
494 return false;
495 }
496
497 virtual bool RunScriptFormatKeyword(const char *impl_function, Target *target,
498 std::string &output, Status &error) {
499 error.SetErrorString("unimplemented");
500 return false;
501 }
502
503 virtual bool RunScriptFormatKeyword(const char *impl_function,
504 StackFrame *frame, std::string &output,
505 Status &error) {
506 error.SetErrorString("unimplemented");
507 return false;
508 }
509
510 virtual bool RunScriptFormatKeyword(const char *impl_function,
511 ValueObject *value, std::string &output,
512 Status &error) {
513 error.SetErrorString("unimplemented");
514 return false;
515 }
516
517 virtual bool GetDocumentationForItem(const char *item, std::string &dest) {
518 dest.clear();
519 return false;
520 }
521
522 virtual bool
524 std::string &dest) {
525 dest.clear();
526 return false;
527 }
528
531 return {};
532 }
533
536 return {};
537 }
538
540 StructuredData::GenericSP cmd_obj_sp, ExecutionContext *exe_ctx,
541 llvm::StringRef long_option, llvm::StringRef value) {
542 return false;
543 }
544
546 StructuredData::GenericSP cmd_obj_sp) {
547 return;
548 }
549
550 virtual uint32_t
552 return 0;
553 }
554
556 std::string &dest) {
557 dest.clear();
558 return false;
559 }
560
561 virtual bool CheckObjectExists(const char *name) { return false; }
562
563 virtual bool
564 LoadScriptingModule(const char *filename, const LoadScriptOptions &options,
566 StructuredData::ObjectSP *module_sp = nullptr,
567 FileSpec extra_search_dir = {});
568
569 virtual bool IsReservedWord(const char *word) { return false; }
570
571 virtual std::unique_ptr<ScriptInterpreterLocker> AcquireInterpreterLock();
572
574
575 virtual llvm::Expected<unsigned>
576 GetMaxPositionalArgumentsForCallable(const llvm::StringRef &callable_name) {
577 return llvm::createStringError(
578 llvm::inconvertibleErrorCode(), "Unimplemented function");
579 }
580
581 static std::string LanguageToString(lldb::ScriptLanguage language);
582
583 static lldb::ScriptLanguage StringToLanguage(const llvm::StringRef &string);
584
586
588 return {};
589 }
590
592 return {};
593 }
594
596 return {};
597 }
598
600 return {};
601 }
602
605 return {};
606 }
607
609 GetDataExtractorFromSBData(const lldb::SBData &data) const;
610
612
614 GetOpaqueTypeFromSBBreakpoint(const lldb::SBBreakpoint &breakpoint) const;
615
617 GetOpaqueTypeFromSBAttachInfo(const lldb::SBAttachInfo &attach_info) const;
618
620 GetOpaqueTypeFromSBLaunchInfo(const lldb::SBLaunchInfo &launch_info) const;
621
622 std::optional<MemoryRegionInfo> GetOpaqueTypeFromSBMemoryRegionInfo(
623 const lldb::SBMemoryRegionInfo &mem_region) const;
624
625protected:
628};
629
630} // namespace lldb_private
631
632#endif // LLDB_INTERPRETER_SCRIPTINTERPRETER_H
static llvm::raw_ostream & error(Stream &strm)
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:79
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:56
LoadScriptOptions & SetInitSession(bool b)
LoadScriptOptions & SetSilent(bool b)
A plug-in interface definition class for debugging a process.
Definition: Process.h:341
void Flush()
Flush our output and error file handles.
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())
virtual bool LoadScriptingModule(const char *filename, const LoadScriptOptions &options, lldb_private::Status &error, StructuredData::ObjectSP *module_sp=nullptr, FileSpec extra_search_dir={})
virtual StructuredData::GenericSP CreateScriptCommandObject(const char *class_name)
virtual bool ScriptedThreadPlanGetStopDescription(StructuredData::ObjectSP implementor_sp, lldb_private::Stream *stream, bool &script_error)
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 Status ExportFunctionDefinitionToInterpreter(StringList &function_def)
virtual int GetIndexOfChildWithName(const StructuredData::ObjectSP &implementor, const char *child_name)
~ScriptInterpreter() override=default
virtual lldb::OperatingSystemInterfaceSP CreateOperatingSystemInterface()
virtual StructuredData::ObjectSP CreateSyntheticScriptedProvider(const char *class_name, lldb::ValueObjectSP valobj)
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 ScriptedBreakpointResolverSearchCallback(StructuredData::GenericSP implementor_sp, SymbolContext *sym_ctx)
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 StructuredData::GenericSP CreateFrameRecognizer(const char *class_name)
virtual bool GenerateScriptAliasFunction(StringList &input, std::string &output)
virtual StructuredData::ObjectSP CreateScriptedThreadPlan(const char *class_name, const StructuredDataImpl &args_data, std::string &error_str, lldb::ThreadPlanSP thread_plan_sp)
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 bool ScriptedStopHookHandleStop(StructuredData::GenericSP implementor_sp, ExecutionContext &exc_ctx, lldb::StreamSP stream_sp)
virtual Status GenerateFunction(const char *signature, const StringList &input, bool is_callback)
virtual lldb::ValueObjectSP GetChildAtIndex(const StructuredData::ObjectSP &implementor, uint32_t idx)
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 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 lldb::SearchDepth ScriptedBreakpointResolverSearchDepth(StructuredData::GenericSP implementor_sp)
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()
virtual bool ScriptedThreadPlanExplainsStop(StructuredData::ObjectSP implementor_sp, Event *event, bool &script_error)
virtual bool UpdateSynthProviderInstance(const StructuredData::ObjectSP &implementor)
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:
virtual lldb::StateType ScriptedThreadPlanGetRunState(StructuredData::ObjectSP implementor_sp, bool &script_error)
lldb::BreakpointSP GetOpaqueTypeFromSBBreakpoint(const lldb::SBBreakpoint &breakpoint) const
virtual bool GetLongHelpForCommandObject(StructuredData::GenericSP cmd_obj_sp, std::string &dest)
virtual bool ScriptedThreadPlanShouldStop(StructuredData::ObjectSP implementor_sp, Event *event, bool &script_error)
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 m_script_lang
lldb::ScriptLanguage GetLanguage()
virtual uint32_t GetFlagsForCommandObject(StructuredData::GenericSP cmd_obj_sp)
virtual bool GetShortHelpForCommandObject(StructuredData::GenericSP cmd_obj_sp, std::string &dest)
virtual StructuredData::GenericSP CreateScriptedStopHook(lldb::TargetSP target_sp, const char *class_name, const StructuredDataImpl &args_data, Status &error)
virtual bool ScriptedThreadPlanIsStale(StructuredData::ObjectSP implementor_sp, bool &script_error)
virtual bool IsReservedWord(const char *word)
virtual StructuredData::GenericSP CreateScriptedBreakpointResolver(const char *class_name, const StructuredDataImpl &args_data, lldb::BreakpointSP &bkpt_sp)
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 void CollectDataForWatchpointCommandCallback(WatchpointOptions *wp_options, CommandReturnObject &result)
This base class provides an interface to stack frames.
Definition: StackFrame.h:42
An error handling class.
Definition: Status.h:44
A stream class that can stream formatted output to a file.
Definition: Stream.h:28
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.
Definition: SymbolContext.h:34
"lldb/Core/ThreadedCommunication.h" Variation of Communication that supports threaded reads.
"lldb/Breakpoint/WatchpointOptions.h" Class that manages the options on a watchpoint.
#define UINT32_MAX
Definition: lldb-defines.h:19
A class that represents a running process on the host machine.
Definition: SBAttachInfo.h:14
std::unique_ptr< lldb_private::ScriptedPlatformInterface > ScriptedPlatformInterfaceUP
Definition: lldb-forward.h:401
ScriptLanguage
Script interpreter types.
std::shared_ptr< lldb_private::ThreadPlan > ThreadPlanSP
Definition: lldb-forward.h:441
std::shared_ptr< lldb_private::StackFrame > StackFrameSP
Definition: lldb-forward.h:412
std::shared_ptr< lldb_private::ValueObject > ValueObjectSP
Definition: lldb-forward.h:472
std::shared_ptr< lldb_private::ProcessAttachInfo > ProcessAttachInfoSP
Definition: lldb-forward.h:382
std::shared_ptr< lldb_private::OperatingSystemInterface > OperatingSystemInterfaceSP
Definition: lldb-forward.h:375
StateType
Process and Thread States.
@ eStateStepping
Process or thread is in the process of stepping and can not be examined.
std::shared_ptr< lldb_private::Stream > StreamSP
Definition: lldb-forward.h:420
std::shared_ptr< lldb_private::Breakpoint > BreakpointSP
Definition: lldb-forward.h:313
std::shared_ptr< lldb_private::ScriptedThreadInterface > ScriptedThreadInterfaceSP
Definition: lldb-forward.h:405
std::shared_ptr< lldb_private::ValueObjectList > ValueObjectListSP
Definition: lldb-forward.h:476
std::shared_ptr< lldb_private::StreamFile > StreamFileSP
Definition: lldb-forward.h:421
@ eSearchDepthModule
std::shared_ptr< lldb_private::TypeImpl > TypeImplSP
Definition: lldb-forward.h:452
std::shared_ptr< lldb_private::Target > TargetSP
Definition: lldb-forward.h:436
std::shared_ptr< lldb_private::File > FileSP
Definition: lldb-forward.h:345
std::shared_ptr< lldb_private::DataExtractor > DataExtractorSP
Definition: lldb-forward.h:330
std::unique_ptr< lldb_private::ScriptedProcessInterface > ScriptedProcessInterfaceUP
Definition: lldb-forward.h:403
std::shared_ptr< lldb_private::ProcessLaunchInfo > ProcessLaunchInfoSP
Definition: lldb-forward.h:383