This is a polymorphic class, copying it is a bad idea. This was not a problem because most classes inheriting from it were deleting their copy operations themselves. However, this enables us to delete those explicit deletions, and ensure noone forgets to add them in the future.
61 lines
1.9 KiB
C++
61 lines
1.9 KiB
C++
//===-- PlatformLinux.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_LINUX_PLATFORMLINUX_H
|
|
#define LLDB_SOURCE_PLUGINS_PLATFORM_LINUX_PLATFORMLINUX_H
|
|
|
|
#include "Plugins/Platform/POSIX/PlatformPOSIX.h"
|
|
|
|
namespace lldb_private {
|
|
namespace platform_linux {
|
|
|
|
class PlatformLinux : public PlatformPOSIX {
|
|
public:
|
|
PlatformLinux(bool is_host);
|
|
|
|
static void Initialize();
|
|
|
|
static void Terminate();
|
|
|
|
// lldb_private::PluginInterface functions
|
|
static lldb::PlatformSP CreateInstance(bool force, const ArchSpec *arch);
|
|
|
|
static ConstString GetPluginNameStatic(bool is_host);
|
|
|
|
static const char *GetPluginDescriptionStatic(bool is_host);
|
|
|
|
ConstString GetPluginName() override;
|
|
|
|
uint32_t GetPluginVersion() override { return 1; }
|
|
|
|
// lldb_private::Platform functions
|
|
const char *GetDescription() override {
|
|
return GetPluginDescriptionStatic(IsHost());
|
|
}
|
|
|
|
void GetStatus(Stream &strm) override;
|
|
|
|
bool GetSupportedArchitectureAtIndex(uint32_t idx, ArchSpec &arch) override;
|
|
|
|
int32_t GetResumeCountForLaunchInfo(ProcessLaunchInfo &launch_info) override;
|
|
|
|
bool CanDebugProcess() override;
|
|
|
|
void CalculateTrapHandlerSymbolNames() override;
|
|
|
|
MmapArgList GetMmapArgumentList(const ArchSpec &arch, lldb::addr_t addr,
|
|
lldb::addr_t length, unsigned prot,
|
|
unsigned flags, lldb::addr_t fd,
|
|
lldb::addr_t offset) override;
|
|
};
|
|
|
|
} // namespace platform_linux
|
|
} // namespace lldb_private
|
|
|
|
#endif // LLDB_SOURCE_PLUGINS_PLATFORM_LINUX_PLATFORMLINUX_H
|