forked from OSchip/llvm-project
64 lines
1.9 KiB
C++
64 lines
1.9 KiB
C++
//===-- PlatformAndroidRemoteGDBServer.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 liblldb_PlatformAndroidRemoteGDBServer_h_
|
|
#define liblldb_PlatformAndroidRemoteGDBServer_h_
|
|
|
|
#include <map>
|
|
#include <utility>
|
|
|
|
#include "Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h"
|
|
|
|
#include "llvm/ADT/Optional.h"
|
|
|
|
#include "AdbClient.h"
|
|
|
|
namespace lldb_private {
|
|
namespace platform_android {
|
|
|
|
class PlatformAndroidRemoteGDBServer
|
|
: public platform_gdb_server::PlatformRemoteGDBServer {
|
|
public:
|
|
PlatformAndroidRemoteGDBServer();
|
|
|
|
~PlatformAndroidRemoteGDBServer() override;
|
|
|
|
Status ConnectRemote(Args &args) override;
|
|
|
|
Status DisconnectRemote() override;
|
|
|
|
lldb::ProcessSP ConnectProcess(llvm::StringRef connect_url,
|
|
llvm::StringRef plugin_name,
|
|
lldb_private::Debugger &debugger,
|
|
lldb_private::Target *target,
|
|
lldb_private::Status &error) override;
|
|
|
|
protected:
|
|
std::string m_device_id;
|
|
std::map<lldb::pid_t, uint16_t> m_port_forwards;
|
|
llvm::Optional<AdbClient::UnixSocketNamespace> m_socket_namespace;
|
|
|
|
bool LaunchGDBServer(lldb::pid_t &pid, std::string &connect_url) override;
|
|
|
|
bool KillSpawnedProcess(lldb::pid_t pid) override;
|
|
|
|
void DeleteForwardPort(lldb::pid_t pid);
|
|
|
|
Status MakeConnectURL(const lldb::pid_t pid, const uint16_t remote_port,
|
|
llvm::StringRef remote_socket_name,
|
|
std::string &connect_url);
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(PlatformAndroidRemoteGDBServer);
|
|
};
|
|
|
|
} // namespace platform_android
|
|
} // namespace lldb_private
|
|
|
|
#endif // liblldb_PlatformAndroidRemoteGDBServer_h_
|