//===-- PlatformAppleSimulator.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_PlatformAppleSimulator_h_ #define liblldb_PlatformAppleSimulator_h_ // C Includes // C++ Includes #include // Other libraries and framework includes // Project includes #include "Plugins/Platform/MacOSX/PlatformDarwin.h" #include "Plugins/Platform/MacOSX/objcxx/PlatformiOSSimulatorCoreSimulatorSupport.h" #include "lldb/Utility/FileSpec.h" #include "llvm/ADT/Optional.h" class PlatformAppleSimulator : public PlatformDarwin { public: //------------------------------------------------------------ // Class Functions //------------------------------------------------------------ static void Initialize(); static void Terminate(); //------------------------------------------------------------ // Class Methods //------------------------------------------------------------ PlatformAppleSimulator(); virtual ~PlatformAppleSimulator(); lldb_private::Status LaunchProcess(lldb_private::ProcessLaunchInfo &launch_info) override; void GetStatus(lldb_private::Stream &strm) override; lldb_private::Status ConnectRemote(lldb_private::Args &args) override; lldb_private::Status DisconnectRemote() override; lldb::ProcessSP DebugProcess(lldb_private::ProcessLaunchInfo &launch_info, lldb_private::Debugger &debugger, lldb_private::Target *target, lldb_private::Status &error) override; protected: std::mutex m_core_sim_path_mutex; llvm::Optional m_core_simulator_framework_path; llvm::Optional m_device; lldb_private::FileSpec GetCoreSimulatorPath(); void LoadCoreSimulator(); #if defined(__APPLE__) CoreSimulatorSupport::Device GetSimulatorDevice(); #endif private: DISALLOW_COPY_AND_ASSIGN(PlatformAppleSimulator); }; #endif // liblldb_PlatformAppleSimulator_h_