The functionality is not posix specific. Also force the usage of the gdb-remote process plugin in the gdb platform class. This is not sufficient to make TestPlatformConnect pass on windows (it seems it suffers from module loading issues, unrelated to this test), but it at least makes it shut down correctly, so I change the skip to an xfail.
106 lines
4.3 KiB
C++
106 lines
4.3 KiB
C++
//===-- PlatformPOSIX.h -----------------------------------------*- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLDB_SOURCE_PLUGINS_PLATFORM_POSIX_PLATFORMPOSIX_H
|
|
#define LLDB_SOURCE_PLUGINS_PLATFORM_POSIX_PLATFORMPOSIX_H
|
|
|
|
#include <map>
|
|
#include <memory>
|
|
|
|
#include "lldb/Interpreter/Options.h"
|
|
#include "lldb/Target/RemoteAwarePlatform.h"
|
|
|
|
class PlatformPOSIX : public lldb_private::RemoteAwarePlatform {
|
|
public:
|
|
PlatformPOSIX(bool is_host);
|
|
|
|
~PlatformPOSIX() override;
|
|
|
|
// lldb_private::Platform functions
|
|
|
|
lldb_private::OptionGroupOptions *
|
|
GetConnectionOptions(lldb_private::CommandInterpreter &interpreter) override;
|
|
|
|
lldb_private::Status PutFile(const lldb_private::FileSpec &source,
|
|
const lldb_private::FileSpec &destination,
|
|
uint32_t uid = UINT32_MAX,
|
|
uint32_t gid = UINT32_MAX) override;
|
|
|
|
lldb_private::Status
|
|
GetFile(const lldb_private::FileSpec &source,
|
|
const lldb_private::FileSpec &destination) override;
|
|
|
|
const lldb::UnixSignalsSP &GetRemoteUnixSignals() override;
|
|
|
|
lldb::ProcessSP Attach(lldb_private::ProcessAttachInfo &attach_info,
|
|
lldb_private::Debugger &debugger,
|
|
lldb_private::Target *target, // Can be nullptr, if
|
|
// nullptr create a new
|
|
// target, else use
|
|
// existing one
|
|
lldb_private::Status &error) override;
|
|
|
|
lldb::ProcessSP DebugProcess(lldb_private::ProcessLaunchInfo &launch_info,
|
|
lldb_private::Debugger &debugger,
|
|
lldb_private::Target *target, // Can be nullptr,
|
|
// if nullptr
|
|
// create a new
|
|
// target, else use
|
|
// existing one
|
|
lldb_private::Status &error) override;
|
|
|
|
std::string GetPlatformSpecificConnectionInformation() override;
|
|
|
|
void CalculateTrapHandlerSymbolNames() override;
|
|
|
|
lldb_private::Status ConnectRemote(lldb_private::Args &args) override;
|
|
|
|
lldb_private::Status DisconnectRemote() override;
|
|
|
|
uint32_t DoLoadImage(lldb_private::Process *process,
|
|
const lldb_private::FileSpec &remote_file,
|
|
const std::vector<std::string> *paths,
|
|
lldb_private::Status &error,
|
|
lldb_private::FileSpec *loaded_image) override;
|
|
|
|
lldb_private::Status UnloadImage(lldb_private::Process *process,
|
|
uint32_t image_token) override;
|
|
|
|
lldb_private::ConstString GetFullNameForDylib(lldb_private::ConstString basename) override;
|
|
|
|
protected:
|
|
std::unique_ptr<lldb_private::OptionGroupPlatformRSync>
|
|
m_option_group_platform_rsync;
|
|
std::unique_ptr<lldb_private::OptionGroupPlatformSSH>
|
|
m_option_group_platform_ssh;
|
|
std::unique_ptr<lldb_private::OptionGroupPlatformCaching>
|
|
m_option_group_platform_caching;
|
|
|
|
std::map<lldb_private::CommandInterpreter *,
|
|
std::unique_ptr<lldb_private::OptionGroupOptions>>
|
|
m_options;
|
|
|
|
lldb_private::Status
|
|
EvaluateLibdlExpression(lldb_private::Process *process, const char *expr_cstr,
|
|
llvm::StringRef expr_prefix,
|
|
lldb::ValueObjectSP &result_valobj_sp);
|
|
|
|
std::unique_ptr<lldb_private::UtilityFunction>
|
|
MakeLoadImageUtilityFunction(lldb_private::ExecutionContext &exe_ctx,
|
|
lldb_private::Status &error);
|
|
|
|
virtual
|
|
llvm::StringRef GetLibdlFunctionDeclarations(lldb_private::Process *process);
|
|
|
|
private:
|
|
PlatformPOSIX(const PlatformPOSIX &) = delete;
|
|
const PlatformPOSIX &operator=(const PlatformPOSIX &) = delete;
|
|
};
|
|
|
|
#endif // LLDB_SOURCE_PLUGINS_PLATFORM_POSIX_PLATFORMPOSIX_H
|