77 lines
2.0 KiB
C++
77 lines
2.0 KiB
C++
//===-- PlatformAndroidRemoteGDBServer.h ------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef liblldb_PlatformAndroidRemoteGDBServer_h_
|
|
#define liblldb_PlatformAndroidRemoteGDBServer_h_
|
|
|
|
// C Includes
|
|
// C++ Includes
|
|
#include <map>
|
|
#include <utility>
|
|
|
|
// Other libraries and framework includes
|
|
// Project includes
|
|
#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;
|
|
|
|
Error
|
|
ConnectRemote (Args& args) override;
|
|
|
|
Error
|
|
DisconnectRemote () override;
|
|
|
|
lldb::ProcessSP
|
|
ConnectProcess (const char* connect_url,
|
|
const char* plugin_name,
|
|
lldb_private::Debugger &debugger,
|
|
lldb_private::Target *target,
|
|
lldb_private::Error &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);
|
|
|
|
Error
|
|
MakeConnectURL(const lldb::pid_t pid,
|
|
const uint16_t remote_port,
|
|
const char* remote_socket_name,
|
|
std::string& connect_url);
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN (PlatformAndroidRemoteGDBServer);
|
|
};
|
|
|
|
} // namespace platform_android
|
|
} // namespace lldb_private
|
|
|
|
#endif // liblldb_PlatformAndroidRemoteGDBServer_h_
|