brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.9 KiB · 511797c Raw
102 lines · c
1//===-- PlatformPOSIX.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-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLDB_SOURCE_PLUGINS_PLATFORM_POSIX_PLATFORMPOSIX_H10#define LLDB_SOURCE_PLUGINS_PLATFORM_POSIX_PLATFORMPOSIX_H11 12#include <map>13#include <memory>14 15#include "lldb/Interpreter/Options.h"16#include "lldb/Target/RemoteAwarePlatform.h"17 18class PlatformPOSIX : public lldb_private::RemoteAwarePlatform {19public:20  PlatformPOSIX(bool is_host);21 22  ~PlatformPOSIX() override;23 24  // lldb_private::Platform functions25 26  lldb_private::OptionGroupOptions *27  GetConnectionOptions(lldb_private::CommandInterpreter &interpreter) override;28 29  lldb_private::Status PutFile(const lldb_private::FileSpec &source,30                               const lldb_private::FileSpec &destination,31                               uint32_t uid = UINT32_MAX,32                               uint32_t gid = UINT32_MAX) override;33 34  lldb_private::Status35  GetFile(const lldb_private::FileSpec &source,36          const lldb_private::FileSpec &destination) override;37 38  const lldb::UnixSignalsSP &GetRemoteUnixSignals() override;39 40  lldb::ProcessSP Attach(lldb_private::ProcessAttachInfo &attach_info,41                         lldb_private::Debugger &debugger,42                         lldb_private::Target *target, // Can be nullptr, if43                                                       // nullptr create a new44                                                       // target, else use45                                                       // existing one46                         lldb_private::Status &error) override;47 48  lldb::ProcessSP DebugProcess(lldb_private::ProcessLaunchInfo &launch_info,49                               lldb_private::Debugger &debugger,50                               lldb_private::Target &target,51                               lldb_private::Status &error) override;52 53  std::string GetPlatformSpecificConnectionInformation() override;54 55  void CalculateTrapHandlerSymbolNames() override;56 57  lldb_private::Status ConnectRemote(lldb_private::Args &args) override;58 59  lldb_private::Status DisconnectRemote() override;60 61  uint32_t DoLoadImage(lldb_private::Process *process,62                       const lldb_private::FileSpec &remote_file,63                       const std::vector<std::string> *paths,64                       lldb_private::Status &error,65                       lldb_private::FileSpec *loaded_image) override;66 67  lldb_private::Status UnloadImage(lldb_private::Process *process,68                                   uint32_t image_token) override;69 70  lldb_private::ConstString GetFullNameForDylib(lldb_private::ConstString basename) override;71 72protected:73  std::unique_ptr<lldb_private::OptionGroupPlatformRSync>74      m_option_group_platform_rsync;75  std::unique_ptr<lldb_private::OptionGroupPlatformSSH>76      m_option_group_platform_ssh;77  std::unique_ptr<lldb_private::OptionGroupPlatformCaching>78      m_option_group_platform_caching;79 80  std::map<lldb_private::CommandInterpreter *,81           std::unique_ptr<lldb_private::OptionGroupOptions>>82      m_options;83 84  lldb_private::Status85  EvaluateLibdlExpression(lldb_private::Process *process, const char *expr_cstr,86                          llvm::StringRef expr_prefix,87                          lldb::ValueObjectSP &result_valobj_sp);88 89  std::unique_ptr<lldb_private::UtilityFunction>90  MakeLoadImageUtilityFunction(lldb_private::ExecutionContext &exe_ctx,91                               lldb_private::Status &error);92 93  virtual94  llvm::StringRef GetLibdlFunctionDeclarations(lldb_private::Process *process);95 96private:97  PlatformPOSIX(const PlatformPOSIX &) = delete;98  const PlatformPOSIX &operator=(const PlatformPOSIX &) = delete;99};100 101#endif // LLDB_SOURCE_PLUGINS_PLATFORM_POSIX_PLATFORMPOSIX_H102