LLDB mainline
ScriptedCommandPythonInterface.h
Go to the documentation of this file.
1//===----------------------------------------------------------------------===//
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_SOURCE_PLUGINS_SCRIPTINTERPRETER_PYTHON_INTERFACES_SCRIPTEDCOMMANDPYTHONINTERFACE_H
10#define LLDB_SOURCE_PLUGINS_SCRIPTINTERPRETER_PYTHON_INTERFACES_SCRIPTEDCOMMANDPYTHONINTERFACE_H
11
13
15namespace lldb_private {
16
19 public PluginInterface {
20public:
22
23 llvm::Expected<StructuredData::GenericSP>
24 CreatePluginObject(llvm::StringRef class_name,
25 lldb::DebuggerSP debugger_sp) override;
26
27 llvm::SmallVector<AbstractMethodRequirement>
29 return llvm::SmallVector<AbstractMethodRequirement>();
30 }
31
32 bool RunRawCommand(llvm::StringRef args,
33 ScriptedCommandSynchronicity synchronicity,
34 CommandReturnObject &cmd_retobj, Status &error,
35 const ExecutionContext &exe_ctx) override;
36
37 bool RunParsedCommand(Args &args, ScriptedCommandSynchronicity synchronicity,
38 CommandReturnObject &cmd_retobj, Status &error,
39 const ExecutionContext &exe_ctx) override;
40
41 std::optional<std::string> GetRepeatCommand(Args &args) override;
42
44 HandleArgumentCompletion(std::vector<std::string> &args, size_t args_pos,
45 size_t char_in_arg) override;
46
48 HandleOptionArgumentCompletion(llvm::StringRef &long_option,
49 size_t char_in_arg) override;
50
51 bool GetShortHelp(std::string &dest) override;
52
53 bool GetLongHelp(std::string &dest) override;
54
55 uint32_t GetFlags() override;
56
58
60
61 void OptionParsingStarted() override;
62
63 bool SetOptionValue(ExecutionContext *exe_ctx, llvm::StringRef long_option,
64 llvm::StringRef value) override;
65
66 static void Initialize();
67
68 static void Terminate();
69
70 static llvm::StringRef GetPluginNameStatic() {
71 return "ScriptedCommandPythonInterface";
72 }
73
74 llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); }
75
76private:
78};
79} // namespace lldb_private
80
81#endif // LLDB_SOURCE_PLUGINS_SCRIPTINTERPRETER_PYTHON_INTERFACES_SCRIPTEDCOMMANDPYTHONINTERFACE_H
static llvm::raw_ostream & error(Stream &strm)
A command line argument class.
Definition Args.h:33
"lldb/Target/ExecutionContext.h" A class that contains an execution context.
std::optional< std::string > GetRepeatCommand(Args &args) override
llvm::Expected< StructuredData::GenericSP > CreatePluginObject(llvm::StringRef class_name, lldb::DebuggerSP debugger_sp) override
bool RunParsedCommand(Args &args, ScriptedCommandSynchronicity synchronicity, CommandReturnObject &cmd_retobj, Status &error, const ExecutionContext &exe_ctx) override
StructuredData::DictionarySP HandleArgumentCompletion(std::vector< std::string > &args, size_t args_pos, size_t char_in_arg) override
ScriptedCommandPythonInterface(ScriptInterpreterPythonImpl &interpreter)
bool RunRawCommand(llvm::StringRef args, ScriptedCommandSynchronicity synchronicity, CommandReturnObject &cmd_retobj, Status &error, const ExecutionContext &exe_ctx) override
bool SetOptionValue(ExecutionContext *exe_ctx, llvm::StringRef long_option, llvm::StringRef value) override
StructuredData::DictionarySP HandleOptionArgumentCompletion(llvm::StringRef &long_option, size_t char_in_arg) override
llvm::SmallVector< AbstractMethodRequirement > GetAbstractMethodRequirements() const override
ScriptedPythonInterface(ScriptInterpreterPythonImpl &interpreter)
An error handling class.
Definition Status.h:118
std::shared_ptr< Dictionary > DictionarySP
std::shared_ptr< Object > ObjectSP
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::Debugger > DebuggerSP