Author: eugenezelenko Date: Fri Oct 23 20:08:35 2015 New Revision: 251167 URL: http://llvm.org/viewvc/llvm-project?rev=251167&view=rev Log: Fix Clang-tidy modernize-use-override warnings in some files in source/Plugins; other minor fixes.
Modified: lldb/trunk/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.h lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.h lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h lldb/trunk/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h Modified: lldb/trunk/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.h?rev=251167&r1=251166&r2=251167&view=diff ============================================================================== --- lldb/trunk/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.h (original) +++ lldb/trunk/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.h Fri Oct 23 20:08:35 2015 @@ -1,4 +1,4 @@ -//===-- MemoryHistoryASan.h ----------------------------------------*- C++ -*-===// +//===-- MemoryHistoryASan.h -------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // @@ -24,7 +24,8 @@ namespace lldb_private { class MemoryHistoryASan : public lldb_private::MemoryHistory { public: - + ~MemoryHistoryASan() override = default; + static lldb::MemoryHistorySP CreateInstance (const lldb::ProcessSP &process_sp); @@ -36,27 +37,28 @@ public: static lldb_private::ConstString GetPluginNameStatic(); + + lldb_private::ConstString + GetPluginName() override + { + return GetPluginNameStatic(); + } + + uint32_t + GetPluginVersion() override + { + return 1; + } - virtual - ~MemoryHistoryASan () {} - - virtual lldb_private::ConstString - GetPluginName() { return GetPluginNameStatic(); } - - virtual uint32_t - GetPluginVersion() { return 1; } - - virtual lldb_private::HistoryThreads - GetHistoryThreads(lldb::addr_t address); + lldb_private::HistoryThreads + GetHistoryThreads(lldb::addr_t address) override; private: - MemoryHistoryASan(const lldb::ProcessSP &process_sp); lldb::ProcessWP m_process_wp; - }; } // namespace lldb_private -#endif // liblldb_MemoryHistoryASan_h_ +#endif // liblldb_MemoryHistoryASan_h_ Modified: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h?rev=251167&r1=251166&r2=251167&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h (original) +++ lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h Fri Oct 23 20:08:35 2015 @@ -12,9 +12,9 @@ // C Includes // C++ Includes -#include <list> #include <string> #include <queue> +#include <vector> // Other libraries and framework includes // Project includes @@ -94,14 +94,10 @@ public: uint32_t m_saved_timeout; }; - //------------------------------------------------------------------ - // Constructors and Destructors - //------------------------------------------------------------------ GDBRemoteCommunication(const char *comm_name, const char *listener_name); - virtual - ~GDBRemoteCommunication(); + ~GDBRemoteCommunication() override; PacketResult GetAck (); @@ -117,12 +113,13 @@ public: size_t payload_length); bool - GetSequenceMutex (Mutex::Locker& locker, const char *failure_message = NULL); + GetSequenceMutex(Mutex::Locker& locker, const char *failure_message = nullptr); PacketType CheckForPacket (const uint8_t *src, size_t src_len, StringExtractorGDBRemote &packet); + bool IsRunning() const { @@ -162,21 +159,21 @@ public: { return m_packet_timeout * TimeValue::MicroSecPerSec; } + //------------------------------------------------------------------ // Start a debugserver instance on the current host using the // supplied connection URL. //------------------------------------------------------------------ Error - StartDebugserverProcess (const char *url, - Platform *platform, // If non NULL, then check with the platform for the GDB server binary if it can't be located - ProcessLaunchInfo &launch_info, - uint16_t *port); + StartDebugserverProcess(const char *url, + Platform *platform, // If non nullptr, then check with the platform for the GDB server binary if it can't be located + ProcessLaunchInfo &launch_info, + uint16_t *port); void DumpHistory(Stream &strm); protected: - class History { public: @@ -223,6 +220,7 @@ protected: AddPacket (char packet_char, PacketType type, uint32_t bytes_transmitted); + void AddPacket (const std::string &src, uint32_t src_len, @@ -241,7 +239,7 @@ protected: return m_dumped_to_log; } -protected: + protected: uint32_t GetFirstSavedPacketIndex () const { @@ -275,13 +273,30 @@ protected: return i % m_packets.size(); } - std::vector<Entry> m_packets; uint32_t m_curr_idx; uint32_t m_total_packet_count; mutable bool m_dumped_to_log; }; + uint32_t m_packet_timeout; + uint32_t m_echo_number; + LazyBool m_supports_qEcho; +#ifdef ENABLE_MUTEX_ERROR_CHECKING + TrackingMutex m_sequence_mutex; +#else + Mutex m_sequence_mutex; // Restrict access to sending/receiving packets to a single thread at a time +#endif + Predicate<bool> m_public_is_running; + Predicate<bool> m_private_is_running; + History m_history; + bool m_send_acks; + bool m_is_platform; // Set to true if this class represents a platform, + // false if this class represents a debug session for + // a single process + + CompressionType m_compression_type; + PacketResult SendPacket (const char *payload, size_t payload_length); @@ -321,27 +336,6 @@ protected: bool DecompressPacket (); - //------------------------------------------------------------------ - // Classes that inherit from GDBRemoteCommunication can see and modify these - //------------------------------------------------------------------ - uint32_t m_packet_timeout; - uint32_t m_echo_number; - LazyBool m_supports_qEcho; -#ifdef ENABLE_MUTEX_ERROR_CHECKING - TrackingMutex m_sequence_mutex; -#else - Mutex m_sequence_mutex; // Restrict access to sending/receiving packets to a single thread at a time -#endif - Predicate<bool> m_public_is_running; - Predicate<bool> m_private_is_running; - History m_history; - bool m_send_acks; - bool m_is_platform; // Set to true if this class represents a platform, - // false if this class represents a debug session for - // a single process - - CompressionType m_compression_type; - Error StartListenThread (const char *hostname = "127.0.0.1", uint16_t port = 0); @@ -361,10 +355,12 @@ protected: // This method is defined as part of communication.h // when the read thread gets any bytes it will pass them on to this function - virtual void AppendBytesToCache (const uint8_t * bytes, size_t len, bool broadcast, lldb::ConnectionStatus status); + void AppendBytesToCache(const uint8_t * bytes, + size_t len, + bool broadcast, + lldb::ConnectionStatus status) override; private: - std::queue<StringExtractorGDBRemote> m_packet_queue; // The packet queue lldb_private::Mutex m_packet_queue_mutex; // Mutex for accessing queue Condition m_condition_queue_not_empty; // Condition variable to wait for packets @@ -372,13 +368,10 @@ private: HostThread m_listen_thread; std::string m_listen_url; - //------------------------------------------------------------------ - // For GDBRemoteCommunication only - //------------------------------------------------------------------ DISALLOW_COPY_AND_ASSIGN (GDBRemoteCommunication); }; } // namespace process_gdb_remote } // namespace lldb_private -#endif // liblldb_GDBRemoteCommunication_h_ +#endif // liblldb_GDBRemoteCommunication_h_ Modified: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h?rev=251167&r1=251166&r2=251167&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h (original) +++ lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h Fri Oct 23 20:08:35 2015 @@ -12,6 +12,8 @@ // C Includes // C++ Includes +#include <map> +#include <string> #include <vector> // Other libraries and framework includes @@ -28,12 +30,9 @@ namespace process_gdb_remote { class GDBRemoteCommunicationClient : public GDBRemoteCommunication { public: - //------------------------------------------------------------------ - // Constructors and Destructors - //------------------------------------------------------------------ GDBRemoteCommunicationClient(); - ~GDBRemoteCommunicationClient(); + ~GDBRemoteCommunicationClient() override; //------------------------------------------------------------------ // After connecting, send the handshake to the server to make sure @@ -79,6 +78,7 @@ public: const char *packet_payload, size_t packet_length, StringExtractorGDBRemote &response); + bool SendvContPacket (ProcessGDBRemote *process, const char *payload, @@ -164,7 +164,7 @@ public: SendLaunchArchPacket (const char *arch); int - SendLaunchEventDataPacket (const char *data, bool *was_supported = NULL); + SendLaunchEventDataPacket(const char *data, bool *was_supported = nullptr); //------------------------------------------------------------------ /// Sends a "vAttach:PID" where PID is in hex. @@ -185,7 +185,6 @@ public: SendAttach (lldb::pid_t pid, StringExtractorGDBRemote& response); - //------------------------------------------------------------------ /// Sends a GDB remote protocol 'I' packet that delivers stdin /// data to the remote process. @@ -399,6 +398,7 @@ public: default: return false; } } + uint8_t SendGDBStoppointTypePacket (GDBStoppointType type, // Type of breakpoint or watchpoint bool insert, // Insert or remove? @@ -508,11 +508,11 @@ public: GetFileExists (const FileSpec& file_spec); Error - RunShellCommand(const char *command, // Shouldn't be NULL + RunShellCommand(const char *command, // Shouldn't be nullptr const FileSpec &working_dir, // Pass empty FileSpec to use the current working directory - int *status_ptr, // Pass NULL if you don't want the process exit status - int *signo_ptr, // Pass NULL if you don't want the signal that caused the process to exit - std::string *command_output, // Pass NULL if you don't want the command output + int *status_ptr, // Pass nullptr if you don't want the process exit status + int *signo_ptr, // Pass nullptr if you don't want the signal that caused the process to exit + std::string *command_output, // Pass nullptr if you don't want the command output uint32_t timeout_sec); // Timeout in seconds to wait for shell program to finish bool @@ -570,26 +570,6 @@ public: ServeSymbolLookups(lldb_private::Process *process); protected: - - PacketResult - SendPacketAndWaitForResponseNoLock (const char *payload, - size_t payload_length, - StringExtractorGDBRemote &response); - - bool - GetCurrentProcessInfo (bool allow_lazy_pid = true); - - bool - GetGDBServerVersion(); - - // Given the list of compression types that the remote debug stub can support, - // possibly enable compression if we find an encoding we can handle. - void - MaybeEnableCompression (std::vector<std::string> supported_compressions); - - //------------------------------------------------------------------ - // Classes that inherit from GDBRemoteCommunicationClient can see and modify these - //------------------------------------------------------------------ LazyBool m_supports_not_sending_acks; LazyBool m_supports_thread_suffix; LazyBool m_supports_threads_in_stop_reply; @@ -642,7 +622,6 @@ protected: lldb::tid_t m_curr_tid; // Current gdb remote protocol thread index for all other operations lldb::tid_t m_curr_tid_run; // Current gdb remote protocol thread index for continue, step, etc - uint32_t m_num_supported_hardware_watchpoints; // If we need to send a packet while the target is running, the m_async_XXX @@ -670,18 +649,31 @@ protected: uint32_t m_default_packet_timeout; uint64_t m_max_packet_size; // as returned by qSupported - + PacketResult + SendPacketAndWaitForResponseNoLock (const char *payload, + size_t payload_length, + StringExtractorGDBRemote &response); + + bool + GetCurrentProcessInfo (bool allow_lazy_pid = true); + + bool + GetGDBServerVersion(); + + // Given the list of compression types that the remote debug stub can support, + // possibly enable compression if we find an encoding we can handle. + void + MaybeEnableCompression (std::vector<std::string> supported_compressions); + bool DecodeProcessInfoResponse (StringExtractorGDBRemote &response, ProcessInstanceInfo &process_info); + private: - //------------------------------------------------------------------ - // For GDBRemoteCommunicationClient only - //------------------------------------------------------------------ DISALLOW_COPY_AND_ASSIGN (GDBRemoteCommunicationClient); }; } // namespace process_gdb_remote } // namespace lldb_private -#endif // liblldb_GDBRemoteCommunicationClient_h_ +#endif // liblldb_GDBRemoteCommunicationClient_h_ Modified: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h?rev=251167&r1=251166&r2=251167&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h (original) +++ lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h Fri Oct 23 20:08:35 2015 @@ -39,8 +39,7 @@ public: GDBRemoteCommunicationServer(const char *comm_name, const char *listener_name); - virtual - ~GDBRemoteCommunicationServer(); + ~GDBRemoteCommunicationServer() override; void RegisterPacketHandler(StringExtractorGDBRemote::ServerPacketType packet_type, PacketHandler handler); @@ -73,13 +72,10 @@ protected: SendOKResponse (); private: - //------------------------------------------------------------------ - // For GDBRemoteCommunicationServer only - //------------------------------------------------------------------ DISALLOW_COPY_AND_ASSIGN (GDBRemoteCommunicationServer); }; } // namespace process_gdb_remote } // namespace lldb_private -#endif // liblldb_GDBRemoteCommunicationServer_h_ +#endif // liblldb_GDBRemoteCommunicationServer_h_ Modified: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.h?rev=251167&r1=251166&r2=251167&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.h (original) +++ lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.h Fri Oct 23 20:08:35 2015 @@ -12,13 +12,14 @@ // C Includes // C++ Includes +#include <string> // Other libraries and framework includes +// Project includes #include "lldb/lldb-private-forward.h" #include "lldb/Host/Mutex.h" #include "lldb/Target/Process.h" -// Project includes #include "GDBRemoteCommunicationServer.h" #include "GDBRemoteCommunicationServerCommon.h" @@ -35,8 +36,7 @@ class GDBRemoteCommunicationServerCommon public: GDBRemoteCommunicationServerCommon(const char *comm_name, const char *listener_name); - virtual - ~GDBRemoteCommunicationServerCommon(); + ~GDBRemoteCommunicationServerCommon() override; protected: ProcessLaunchInfo m_process_launch_info; @@ -204,4 +204,4 @@ protected: } // namespace process_gdb_remote } // namespace lldb_private -#endif // liblldb_GDBRemoteCommunicationServerCommon_h_ +#endif // liblldb_GDBRemoteCommunicationServerCommon_h_ Modified: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h?rev=251167&r1=251166&r2=251167&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h (original) +++ lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h Fri Oct 23 20:08:35 2015 @@ -10,12 +10,16 @@ #ifndef liblldb_GDBRemoteCommunicationServerPlatform_h_ #define liblldb_GDBRemoteCommunicationServerPlatform_h_ -#include "GDBRemoteCommunicationServerCommon.h" +// C Includes +// C++ Includes +#include <map> +#include <set> +// Other libraries and framework includes +// Project includes +#include "GDBRemoteCommunicationServerCommon.h" #include "lldb/Host/Socket.h" -#include <set> - namespace lldb_private { namespace process_gdb_remote { @@ -27,8 +31,7 @@ public: GDBRemoteCommunicationServerPlatform(const Socket::SocketProtocol socket_protocol); - virtual - ~GDBRemoteCommunicationServerPlatform(); + ~GDBRemoteCommunicationServerPlatform() override; Error LaunchProcess () override; @@ -112,13 +115,10 @@ private: static FileSpec GetDomainSocketPath(const char* prefix); - //------------------------------------------------------------------ - // For GDBRemoteCommunicationServerPlatform only - //------------------------------------------------------------------ DISALLOW_COPY_AND_ASSIGN (GDBRemoteCommunicationServerPlatform); }; } // namespace process_gdb_remote } // namespace lldb_private -#endif // liblldb_GDBRemoteCommunicationServerPlatform_h_ +#endif // liblldb_GDBRemoteCommunicationServerPlatform_h_ Modified: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h?rev=251167&r1=251166&r2=251167&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h (original) +++ lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h Fri Oct 23 20:08:35 2015 @@ -42,32 +42,22 @@ public: { } - ~GDBRemoteDynamicRegisterInfo () - { - } + ~GDBRemoteDynamicRegisterInfo() override = default; void HardcodeARMRegisters(bool from_scratch); - }; class GDBRemoteRegisterContext : public RegisterContext { public: - //------------------------------------------------------------------ - // Constructors and Destructors - //------------------------------------------------------------------ GDBRemoteRegisterContext (ThreadGDBRemote &thread, uint32_t concrete_frame_idx, GDBRemoteDynamicRegisterInfo ®_info, bool read_all_at_once); - virtual - ~GDBRemoteRegisterContext (); + ~GDBRemoteRegisterContext() override; - //------------------------------------------------------------------ - // Subclasses must override these functions - //------------------------------------------------------------------ void InvalidateAllRegisters () override; @@ -166,13 +156,10 @@ private: bool SetPrimordialRegister(const RegisterInfo *reg_info, GDBRemoteCommunicationClient &gdb_comm); - //------------------------------------------------------------------ - // For GDBRemoteRegisterContext only - //------------------------------------------------------------------ DISALLOW_COPY_AND_ASSIGN (GDBRemoteRegisterContext); }; } // namespace process_gdb_remote } // namespace lldb_private -#endif // lldb_GDBRemoteRegisterContext_h_ +#endif // lldb_GDBRemoteRegisterContext_h_ Modified: lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp?rev=251167&r1=251166&r2=251167&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp (original) +++ lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp Fri Oct 23 20:08:35 2015 @@ -7,8 +7,6 @@ // //===----------------------------------------------------------------------===// -#include "lldb/Host/Config.h" - // C Includes #include <errno.h> #include <stdlib.h> @@ -25,6 +23,9 @@ #include <map> #include <mutex> +// Other libraries and framework includes +// Project includes +#include "lldb/Host/Config.h" #include "lldb/Breakpoint/Watchpoint.h" #include "lldb/Interpreter/Args.h" #include "lldb/Core/ArchSpec.h" @@ -65,7 +66,6 @@ #include "lldb/Target/SystemRuntime.h" #include "lldb/Utility/PseudoTerminal.h" -// Project includes #include "lldb/Host/Host.h" #include "Plugins/Process/Utility/GDBRemoteSignals.h" #include "Plugins/Process/Utility/InferiorCallPOSIX.h" @@ -78,6 +78,7 @@ #include "ThreadGDBRemote.h" #define DEBUGSERVER_BASENAME "debugserver" + using namespace lldb; using namespace lldb_private; using namespace lldb_private::process_gdb_remote; @@ -98,7 +99,7 @@ namespace lldb if (error.Success()) ((ProcessGDBRemote *)p)->GetGDBRemote().DumpHistory (strm); } -} +} // namespace lldb namespace { @@ -119,7 +120,6 @@ namespace { class PluginProperties : public Properties { public: - static ConstString GetSettingName () { @@ -132,12 +132,9 @@ namespace { m_collection_sp.reset (new OptionValueProperties(GetSettingName())); m_collection_sp->Initialize(g_properties); } - - virtual - ~PluginProperties() - { - } - + + ~PluginProperties() override = default; + uint64_t GetPacketTimeout() { @@ -171,16 +168,14 @@ namespace { return g_settings_sp; } -} // anonymous namespace end +} // anonymous namespace class ProcessGDBRemote::GDBLoadedModuleInfoList { public: - class LoadedModuleInfo { public: - enum e_data_point { e_has_name = 0, @@ -201,6 +196,7 @@ public: m_name = name; m_has[e_has_name] = true; } + bool get_name (std::string & out) const { out = m_name; @@ -212,6 +208,7 @@ public: m_base = base; m_has[e_has_base] = true; } + bool get_base (lldb::addr_t & out) const { out = m_base; @@ -222,6 +219,7 @@ public: { m_base_is_offset = is_offset; } + bool get_base_is_offset(bool & out) const { out = m_base_is_offset; @@ -233,6 +231,7 @@ public: m_link_map = addr; m_has[e_has_link_map] = true; } + bool get_link_map (lldb::addr_t & out) const { out = m_link_map; @@ -244,6 +243,7 @@ public: m_dynamic = addr; m_has[e_has_dynamic] = true; } + bool get_dynamic (lldb::addr_t & out) const { out = m_dynamic; @@ -257,7 +257,6 @@ public: } protected: - bool m_has[e_num]; std::string m_name; lldb::addr_t m_link_map; @@ -333,7 +332,6 @@ ProcessGDBRemote::Terminate() PluginManager::UnregisterPlugin (ProcessGDBRemote::CreateInstance); } - lldb::ProcessSP ProcessGDBRemote::CreateInstance (lldb::TargetSP target_sp, Listener &listener, const FileSpec *crash_file_path) { @@ -376,9 +374,6 @@ ProcessGDBRemote::CanDebug (lldb::Target return true; } -//---------------------------------------------------------------------- -// ProcessGDBRemote constructor -//---------------------------------------------------------------------- ProcessGDBRemote::ProcessGDBRemote(lldb::TargetSP target_sp, Listener &listener) : Process (target_sp, listener), m_flags (0), @@ -433,9 +428,6 @@ ProcessGDBRemote::ProcessGDBRemote(lldb: m_gdb_comm.SetPacketTimeout(timeout_seconds); } -//---------------------------------------------------------------------- -// Destructor -//---------------------------------------------------------------------- ProcessGDBRemote::~ProcessGDBRemote() { // m_mach_process.UnregisterNotificationCallbacks (this); @@ -563,7 +555,6 @@ SplitCommaSeparatedRegisterNumberString( return regnums.size(); } - void ProcessGDBRemote::BuildDynamicRegisterInfo (bool force) { @@ -1156,10 +1147,8 @@ ProcessGDBRemote::DoLaunch (Module *exe_ exe_module->GetArchitecture().GetArchitectureName()); } return error; - } - Error ProcessGDBRemote::ConnectToDebugserver (const char *connect_url) { @@ -1206,7 +1195,6 @@ ProcessGDBRemote::ConnectToDebugserver ( return error; } - // Start the communications read thread so all incoming data can be // parsed into packets and queued as they arrive. if (GetTarget().GetNonStopModeEnabled()) @@ -1474,7 +1462,6 @@ ProcessGDBRemote::DidAttach (ArchSpec &p DidLaunchOrAttach (process_arch); } - Error ProcessGDBRemote::WillResume () { @@ -1927,7 +1914,6 @@ ProcessGDBRemote::UpdateThreadList (Thre return true; } - bool ProcessGDBRemote::GetThreadStopInfoFromJSON (ThreadGDBRemote *thread, const StructuredData::ObjectSP &thread_infos_sp) { @@ -1985,7 +1971,6 @@ ProcessGDBRemote::CalculateThreadStopInf return false; } - ThreadSP ProcessGDBRemote::SetThreadStopInfo (lldb::tid_t tid, ExpeditedRegisterMap &expedited_register_map, @@ -2359,7 +2344,6 @@ ProcessGDBRemote::SetThreadStopInfo (Str return true; // Keep iterating through all array items }); } - } else if (key == g_key_signal) signo = object->GetIntegerValue(LLDB_INVALID_SIGNAL_NUMBER); @@ -2680,7 +2664,6 @@ ProcessGDBRemote::RefreshStateAfterStop // Let all threads recover from stopping and do any clean up based // on the previous thread state (if any). m_thread_list_real.RefreshStateAfterStop(); - } Error @@ -2742,7 +2725,6 @@ ProcessGDBRemote::DoDetach(bool keep_sto return error; } - Error ProcessGDBRemote::DoDestroy () { @@ -3172,7 +3154,6 @@ Error ProcessGDBRemote::GetMemoryRegionInfo (addr_t load_addr, MemoryRegionInfo ®ion_info) { - Error error (m_gdb_comm.GetMemoryRegionInfo (load_addr, region_info)); return error; } @@ -3180,7 +3161,6 @@ ProcessGDBRemote::GetMemoryRegionInfo (a Error ProcessGDBRemote::GetWatchpointSupportInfo (uint32_t &num) { - Error error (m_gdb_comm.GetWatchpointSupportInfo (num)); return error; } @@ -3227,7 +3207,6 @@ ProcessGDBRemote::DoDeallocateMemory (ll return error; } - //------------------------------------------------------------------ // Process STDIO //------------------------------------------------------------------ @@ -4030,7 +4009,6 @@ ProcessGDBRemote::NewThreadNotifyBreakpo return false; } - bool ProcessGDBRemote::StartNoticingNewThreads() { @@ -4198,7 +4176,6 @@ ProcessGDBRemote::GetLoadedDynamicLibrar return object_sp; } - // Establish the largest memory read/write payloads we should use. // If the remote stub has a max packet size, stay under that size. // @@ -4491,7 +4468,7 @@ ParseRegisters (XMLNode feature_node, Gd return true; } -} // namespace {} +} // anonymous namespace // query the target of gdb-remote for extended target information @@ -4522,7 +4499,6 @@ ProcessGDBRemote::GetGDBServerRegisterIn { return false; } - XMLDocument xml_document; @@ -4890,7 +4866,6 @@ ProcessGDBRemote::GetFileLoadAddress(con return Error("Unknown error happened during sending the load address packet"); } - void ProcessGDBRemote::ModulesDidLoad (ModuleList &module_list) { @@ -4902,7 +4877,6 @@ ProcessGDBRemote::ModulesDidLoad (Module m_gdb_comm.ServeSymbolLookups(this); } - class CommandObjectProcessGDBRemoteSpeedTest: public CommandObjectParsed { public: @@ -4924,10 +4898,7 @@ public: m_option_group.Finalize(); } - ~CommandObjectProcessGDBRemoteSpeedTest () - { - } - + ~CommandObjectProcessGDBRemoteSpeedTest() override = default; Options * GetOptions () override @@ -4968,19 +4939,17 @@ public: result.SetStatus (eReturnStatusFailed); return false; } + protected: OptionGroupOptions m_option_group; OptionGroupUInt64 m_num_packets; OptionGroupUInt64 m_max_send; OptionGroupUInt64 m_max_recv; OptionGroupBoolean m_json; - }; class CommandObjectProcessGDBRemotePacketHistory : public CommandObjectParsed { -private: - public: CommandObjectProcessGDBRemotePacketHistory(CommandInterpreter &interpreter) : CommandObjectParsed (interpreter, @@ -4989,11 +4958,9 @@ public: NULL) { } - - ~CommandObjectProcessGDBRemotePacketHistory () - { - } - + + ~CommandObjectProcessGDBRemotePacketHistory() override = default; + bool DoExecute (Args& command, CommandReturnObject &result) override { @@ -5019,8 +4986,6 @@ public: class CommandObjectProcessGDBRemotePacketXferSize : public CommandObjectParsed { -private: - public: CommandObjectProcessGDBRemotePacketXferSize(CommandInterpreter &interpreter) : CommandObjectParsed (interpreter, @@ -5029,11 +4994,9 @@ public: NULL) { } - - ~CommandObjectProcessGDBRemotePacketXferSize () - { - } - + + ~CommandObjectProcessGDBRemotePacketXferSize() override = default; + bool DoExecute (Args& command, CommandReturnObject &result) override { @@ -5063,11 +5026,8 @@ public: } }; - class CommandObjectProcessGDBRemotePacketSend : public CommandObjectParsed { -private: - public: CommandObjectProcessGDBRemotePacketSend(CommandInterpreter &interpreter) : CommandObjectParsed (interpreter, @@ -5077,11 +5037,9 @@ public: NULL) { } - - ~CommandObjectProcessGDBRemotePacketSend () - { - } - + + ~CommandObjectProcessGDBRemotePacketSend() override = default; + bool DoExecute (Args& command, CommandReturnObject &result) override { @@ -5124,8 +5082,6 @@ public: class CommandObjectProcessGDBRemotePacketMonitor : public CommandObjectRaw { -private: - public: CommandObjectProcessGDBRemotePacketMonitor(CommandInterpreter &interpreter) : CommandObjectRaw (interpreter, @@ -5135,11 +5091,9 @@ public: NULL) { } - - ~CommandObjectProcessGDBRemotePacketMonitor () - { - } - + + ~CommandObjectProcessGDBRemotePacketMonitor() override = default; + bool DoExecute (const char *command, CommandReturnObject &result) override { @@ -5177,8 +5131,6 @@ public: class CommandObjectProcessGDBRemotePacket : public CommandObjectMultiword { -private: - public: CommandObjectProcessGDBRemotePacket(CommandInterpreter &interpreter) : CommandObjectMultiword (interpreter, @@ -5192,10 +5144,8 @@ public: LoadSubCommand ("xfer-size", CommandObjectSP (new CommandObjectProcessGDBRemotePacketXferSize (interpreter))); LoadSubCommand ("speed-test", CommandObjectSP (new CommandObjectProcessGDBRemoteSpeedTest (interpreter))); } - - ~CommandObjectProcessGDBRemotePacket () - { - } + + ~CommandObjectProcessGDBRemotePacket() override = default; }; class CommandObjectMultiwordProcessGDBRemote : public CommandObjectMultiword @@ -5210,9 +5160,7 @@ public: LoadSubCommand ("packet", CommandObjectSP (new CommandObjectProcessGDBRemotePacket (interpreter))); } - ~CommandObjectMultiwordProcessGDBRemote () - { - } + ~CommandObjectMultiwordProcessGDBRemote() override = default; }; CommandObject * Modified: lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h?rev=251167&r1=251166&r2=251167&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h (original) +++ lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h Fri Oct 23 20:08:35 2015 @@ -11,12 +11,14 @@ #define liblldb_ProcessGDBRemote_h_ // C Includes - // C++ Includes -#include <list> +#include <atomic> +#include <map> +#include <string> #include <vector> // Other libraries and framework includes +// Project includes #include "lldb/Core/ArchSpec.h" #include "lldb/Core/Broadcaster.h" #include "lldb/Core/ConstString.h" @@ -42,9 +44,10 @@ class ThreadGDBRemote; class ProcessGDBRemote : public Process { public: - //------------------------------------------------------------------ - // Constructors and Destructors - //------------------------------------------------------------------ + ProcessGDBRemote(lldb::TargetSP target_sp, Listener &listener); + + ~ProcessGDBRemote() override; + static lldb::ProcessSP CreateInstance (lldb::TargetSP target_sp, Listener &listener, @@ -66,14 +69,6 @@ public: GetPluginDescriptionStatic(); //------------------------------------------------------------------ - // Constructors and Destructors - //------------------------------------------------------------------ - ProcessGDBRemote(lldb::TargetSP target_sp, Listener &listener); - - virtual - ~ProcessGDBRemote(); - - //------------------------------------------------------------------ // Check if a given Process //------------------------------------------------------------------ bool @@ -263,20 +258,62 @@ protected: class GDBLoadedModuleInfoList; + //------------------------------------------------------------------ + /// Broadcaster event bits definitions. + //------------------------------------------------------------------ + enum + { + eBroadcastBitAsyncContinue = (1 << 0), + eBroadcastBitAsyncThreadShouldExit = (1 << 1), + eBroadcastBitAsyncThreadDidExit = (1 << 2) + }; + + Flags m_flags; // Process specific flags (see eFlags enums) + GDBRemoteCommunicationClient m_gdb_comm; + std::atomic<lldb::pid_t> m_debugserver_pid; + std::vector<StringExtractorGDBRemote> m_stop_packet_stack; // The stop packet stack replaces the last stop packet variable + Mutex m_last_stop_packet_mutex; + GDBRemoteDynamicRegisterInfo m_register_info; + Broadcaster m_async_broadcaster; + Listener m_async_listener; + HostThread m_async_thread; + Mutex m_async_thread_state_mutex; + typedef std::vector<lldb::tid_t> tid_collection; + typedef std::vector< std::pair<lldb::tid_t,int> > tid_sig_collection; + typedef std::map<lldb::addr_t, lldb::addr_t> MMapMap; + typedef std::map<uint32_t, std::string> ExpeditedRegisterMap; + tid_collection m_thread_ids; // Thread IDs for all threads. This list gets updated after stopping + StructuredData::ObjectSP m_jstopinfo_sp; // Stop info only for any threads that have valid stop infos + StructuredData::ObjectSP m_jthreadsinfo_sp; // Full stop info, expedited registers and memory for all threads if "jThreadsInfo" packet is supported + tid_collection m_continue_c_tids; // 'c' for continue + tid_sig_collection m_continue_C_tids; // 'C' for continue with signal + tid_collection m_continue_s_tids; // 's' for step + tid_sig_collection m_continue_S_tids; // 'S' for step with signal + uint64_t m_max_memory_size; // The maximum number of bytes to read/write when reading and writing memory + uint64_t m_remote_stub_max_memory_size; // The maximum memory size the remote gdb stub can handle + MMapMap m_addr_to_mmap_size; + lldb::BreakpointSP m_thread_create_bp_sp; + bool m_waiting_for_attach; + bool m_destroy_tried_resuming; + lldb::CommandObjectSP m_command_sp; + int64_t m_breakpoint_pc_offset; + lldb::tid_t m_initial_tid; // The initial thread ID, given by stub on attach + //---------------------------------------------------------------------- // Accessors //---------------------------------------------------------------------- bool IsRunning ( lldb::StateType state ) { - return state == lldb::eStateRunning || IsStepping(state); + return state == lldb::eStateRunning || IsStepping(state); } bool IsStepping ( lldb::StateType state) { - return state == lldb::eStateStepping; + return state == lldb::eStateStepping; } + bool CanResume ( lldb::StateType state) { @@ -341,47 +378,6 @@ protected: size_t UpdateThreadIDsFromStopReplyThreadsValue (std::string &value); - //------------------------------------------------------------------ - /// Broadcaster event bits definitions. - //------------------------------------------------------------------ - enum - { - eBroadcastBitAsyncContinue = (1 << 0), - eBroadcastBitAsyncThreadShouldExit = (1 << 1), - eBroadcastBitAsyncThreadDidExit = (1 << 2) - }; - - Flags m_flags; // Process specific flags (see eFlags enums) - GDBRemoteCommunicationClient m_gdb_comm; - std::atomic<lldb::pid_t> m_debugserver_pid; - std::vector<StringExtractorGDBRemote> m_stop_packet_stack; // The stop packet stack replaces the last stop packet variable - Mutex m_last_stop_packet_mutex; - GDBRemoteDynamicRegisterInfo m_register_info; - Broadcaster m_async_broadcaster; - Listener m_async_listener; - HostThread m_async_thread; - Mutex m_async_thread_state_mutex; - typedef std::vector<lldb::tid_t> tid_collection; - typedef std::vector< std::pair<lldb::tid_t,int> > tid_sig_collection; - typedef std::map<lldb::addr_t, lldb::addr_t> MMapMap; - typedef std::map<uint32_t, std::string> ExpeditedRegisterMap; - tid_collection m_thread_ids; // Thread IDs for all threads. This list gets updated after stopping - StructuredData::ObjectSP m_jstopinfo_sp; // Stop info only for any threads that have valid stop infos - StructuredData::ObjectSP m_jthreadsinfo_sp; // Full stop info, expedited registers and memory for all threads if "jThreadsInfo" packet is supported - tid_collection m_continue_c_tids; // 'c' for continue - tid_sig_collection m_continue_C_tids; // 'C' for continue with signal - tid_collection m_continue_s_tids; // 's' for step - tid_sig_collection m_continue_S_tids; // 'S' for step with signal - uint64_t m_max_memory_size; // The maximum number of bytes to read/write when reading and writing memory - uint64_t m_remote_stub_max_memory_size; // The maximum memory size the remote gdb stub can handle - MMapMap m_addr_to_mmap_size; - lldb::BreakpointSP m_thread_create_bp_sp; - bool m_waiting_for_attach; - bool m_destroy_tried_resuming; - lldb::CommandObjectSP m_command_sp; - int64_t m_breakpoint_pc_offset; - lldb::tid_t m_initial_tid; // The initial thread ID, given by stub on attach - bool HandleNotifyPacket(StringExtractorGDBRemote &packet); @@ -469,10 +465,9 @@ private: lldb::user_id_t break_loc_id); DISALLOW_COPY_AND_ASSIGN (ProcessGDBRemote); - }; } // namespace process_gdb_remote } // namespace lldb_private -#endif // liblldb_ProcessGDBRemote_h_ +#endif // liblldb_ProcessGDBRemote_h_ Modified: lldb/trunk/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h?rev=251167&r1=251166&r2=251167&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h (original) +++ lldb/trunk/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h Fri Oct 23 20:08:35 2015 @@ -10,8 +10,12 @@ #ifndef liblldb_ThreadGDBRemote_h_ #define liblldb_ThreadGDBRemote_h_ +// C Includes +// C++ Includes #include <string> +// Other libraries and framework includes +// Project includes #include "lldb/Core/StructuredData.h" #include "lldb/Target/Process.h" #include "lldb/Target/Thread.h" @@ -28,8 +32,7 @@ class ThreadGDBRemote : public Thread public: ThreadGDBRemote (Process &process, lldb::tid_t tid); - virtual - ~ThreadGDBRemote (); + ~ThreadGDBRemote() override; void WillResume (lldb::StateType resume_state) override; @@ -101,9 +104,14 @@ public: FetchThreadExtendedInfo () override; protected: - friend class ProcessGDBRemote; + std::string m_thread_name; + std::string m_dispatch_queue_name; + lldb::addr_t m_thread_dispatch_qaddr; + lldb::QueueKind m_queue_kind; // Queue info from stop reply/stop info for thread + uint64_t m_queue_serial; // Queue info from stop reply/stop info for thread + bool PrivateSetRegisterValue (uint32_t reg, StringExtractor &response); @@ -113,18 +121,6 @@ protected: { return m_queue_kind != lldb::eQueueKindUnknown; } - //------------------------------------------------------------------ - // Member variables. - //------------------------------------------------------------------ - std::string m_thread_name; - std::string m_dispatch_queue_name; - lldb::addr_t m_thread_dispatch_qaddr; - lldb::QueueKind m_queue_kind; // Queue info from stop reply/stop info for thread - uint64_t m_queue_serial; // Queue info from stop reply/stop info for thread - //------------------------------------------------------------------ - // Member variables. - //------------------------------------------------------------------ - void SetStopInfoFromPacket (StringExtractor &stop_packet, uint32_t stop_id); @@ -135,4 +131,4 @@ protected: } // namespace process_gdb_remote } // namespace lldb_private -#endif // liblldb_ThreadGDBRemote_h_ +#endif // liblldb_ThreadGDBRemote_h_ Modified: lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h?rev=251167&r1=251166&r2=251167&view=diff ============================================================================== --- lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h (original) +++ lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h Fri Oct 23 20:08:35 2015 @@ -1,4 +1,4 @@ -//===-- PythonDataObjects.h----------------------------------------*- C++ -*-===// +//===-- PythonDataObjects.h--------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // @@ -12,7 +12,6 @@ // C Includes // C++ Includes - // Other libraries and framework includes // Project includes #include "lldb/lldb-defines.h" @@ -23,6 +22,7 @@ #include "lldb/Interpreter/OptionValue.h" namespace lldb_private { + class PythonString; class PythonList; class PythonDictionary; @@ -30,7 +30,7 @@ class PythonInteger; class StructuredPythonObject : public StructuredData::Generic { - public: +public: StructuredPythonObject() : StructuredData::Generic() { @@ -42,7 +42,7 @@ class StructuredPythonObject : public St Py_XINCREF(GetValue()); } - virtual ~StructuredPythonObject() + ~StructuredPythonObject() override { if (Py_IsInitialized()) Py_XDECREF(GetValue()); @@ -57,7 +57,7 @@ class StructuredPythonObject : public St void Dump(Stream &s) const override; - private: +private: DISALLOW_COPY_AND_ASSIGN(StructuredPythonObject); }; @@ -106,7 +106,10 @@ public: Reset(rhs); } - virtual ~PythonObject() { Reset(); } + virtual ~PythonObject() + { + Reset(); + } void Reset() @@ -235,6 +238,7 @@ public: explicit PythonString(const char *string); PythonString(PyRefType type, PyObject *o); PythonString(const PythonString &object); + ~PythonString() override; static bool Check(PyObject *py_obj); @@ -262,6 +266,7 @@ public: explicit PythonInteger(int64_t value); PythonInteger(PyRefType type, PyObject *o); PythonInteger(const PythonInteger &object); + ~PythonInteger() override; static bool Check(PyObject *py_obj); @@ -286,6 +291,7 @@ public: explicit PythonList(int list_size); PythonList(PyRefType type, PyObject *o); PythonList(const PythonList &list); + ~PythonList() override; static bool Check(PyObject *py_obj); @@ -312,6 +318,7 @@ public: explicit PythonDictionary(PyInitialValue value); PythonDictionary(PyRefType type, PyObject *o); PythonDictionary(const PythonDictionary &dict); + ~PythonDictionary() override; static bool Check(PyObject *py_obj); @@ -338,6 +345,7 @@ class PythonFile : public PythonObject PythonFile(File &file, const char *mode); PythonFile(const char *path, const char *mode); PythonFile(PyRefType type, PyObject *o); + ~PythonFile() override; static bool Check(PyObject *py_obj); @@ -352,4 +360,4 @@ class PythonFile : public PythonObject } // namespace lldb_private -#endif // LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_PYTHONDATAOBJECTS_H +#endif // LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_PYTHONDATAOBJECTS_H Modified: lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h?rev=251167&r1=251166&r2=251167&view=diff ============================================================================== --- lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h (original) +++ lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h Fri Oct 23 20:08:35 2015 @@ -7,7 +7,6 @@ // //===----------------------------------------------------------------------===// - #ifndef LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_SCRIPTINTERPRETERPYTHON_H #define LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_SCRIPTINTERPRETERPYTHON_H @@ -17,6 +16,14 @@ #else +// C Includes +// C++ Includes +#include <memory> +#include <string> +#include <vector> + +// Other libraries and framework includes +// Project includes #include "lldb/lldb-private.h" #include "PythonDataObjects.h" #include "lldb/Core/IOHandler.h" @@ -74,12 +81,19 @@ public: const lldb::ProcessSP& process_sp); typedef size_t (*SWIGPythonCalculateNumChildren) (void *implementor, uint32_t max); + typedef void* (*SWIGPythonGetChildAtIndex) (void *implementor, uint32_t idx); + typedef int (*SWIGPythonGetIndexOfChildWithName) (void *implementor, const char* child_name); + typedef void* (*SWIGPythonCastPyObjectToSBValue) (void* data); + typedef lldb::ValueObjectSP (*SWIGPythonGetValueObjectSPFromSBValue) (void* data); + typedef bool (*SWIGPythonUpdateSynthProviderInstance) (void* data); + typedef bool (*SWIGPythonMightHaveChildrenSynthProviderInstance) (void* data); + typedef void* (*SWIGPythonGetValueSynthProviderInstance) (void *implementor); typedef bool (*SWIGPythonCallCommand) (const char *python_function_name, @@ -95,7 +109,6 @@ public: lldb_private::CommandReturnObject& cmd_retobj, lldb::ExecutionContextRefSP exe_ctx_ref_sp); - typedef bool (*SWIGPythonCallModuleInit) (const char *python_module_name, const char *session_dictionary_name, lldb::DebuggerSP& debugger); @@ -104,6 +117,7 @@ public: const char* session_dictionary_name, lldb::ProcessSP& process, std::string& output); + typedef bool (*SWIGPythonScriptKeyword_Thread) (const char* python_function_name, const char* session_dictionary_name, lldb::ThreadSP& thread, @@ -159,17 +173,17 @@ public: ExportFunctionDefinitionToInterpreter (StringList &function_def) override; bool - GenerateTypeScriptFunction (StringList &input, std::string& output, const void* name_token = NULL) override; + GenerateTypeScriptFunction(StringList &input, std::string& output, const void* name_token = nullptr) override; bool - GenerateTypeSynthClass (StringList &input, std::string& output, const void* name_token = NULL) override; + GenerateTypeSynthClass(StringList &input, std::string& output, const void* name_token = nullptr) override; bool - GenerateTypeSynthClass (const char* oneliner, std::string& output, const void* name_token = NULL) override; + GenerateTypeSynthClass(const char* oneliner, std::string& output, const void* name_token = nullptr) override; // use this if the function code is just a one-liner script bool - GenerateTypeScriptFunction (const char* oneliner, std::string& output, const void* name_token = NULL) override; + GenerateTypeScriptFunction(const char* oneliner, std::string& output, const void* name_token = nullptr) override; bool GenerateScriptAliasFunction (StringList &input, std::string& output) override; @@ -181,7 +195,9 @@ public: StructuredData::ObjectSP CreateScriptedThreadPlan(const char *class_name, lldb::ThreadPlanSP thread_plan) override; bool ScriptedThreadPlanExplainsStop(StructuredData::ObjectSP implementor_sp, Event *event, bool &script_error) override; + bool ScriptedThreadPlanShouldStop(StructuredData::ObjectSP implementor_sp, Event *event, bool &script_error) override; + lldb::StateType ScriptedThreadPlanGetRunState(StructuredData::ObjectSP implementor_sp, bool &script_error) override; StructuredData::GenericSP OSPlugin_CreatePluginObject(const char *class_name, lldb::ProcessSP process_sp) override; @@ -392,7 +408,6 @@ public: return m_dictionary_name.c_str(); } - PyThreadState * GetThreadState() { @@ -415,7 +430,6 @@ public: void IOHandlerInputComplete (IOHandler &io_handler, std::string &data) override; - //------------------------------------------------------------------ // Static Functions //------------------------------------------------------------------ @@ -437,46 +451,15 @@ public: //------------------------------------------------------------------ // PluginInterface protocol //------------------------------------------------------------------ - virtual lldb_private::ConstString + lldb_private::ConstString GetPluginName() override; - virtual uint32_t + uint32_t GetPluginVersion() override; -protected: - - bool - EnterSession (uint16_t on_entry_flags, - FILE *in, - FILE *out, - FILE *err); - - void - LeaveSession (); - - void - SaveTerminalState (int fd); - - void - RestoreTerminalState (); - - class SynchronicityHandler + class Locker : public ScriptInterpreterLocker { - private: - lldb::DebuggerSP m_debugger_sp; - ScriptedCommandSynchronicity m_synch_wanted; - bool m_old_asynch; public: - SynchronicityHandler(lldb::DebuggerSP, - ScriptedCommandSynchronicity); - ~SynchronicityHandler(); - }; - -public: - class Locker : public ScriptInterpreterLocker - { - public: - enum OnEntry { AcquireLock = 0x0001, @@ -492,17 +475,16 @@ public: TearDownSession = 0x0004 }; - Locker (ScriptInterpreterPython *py_interpreter = NULL, - uint16_t on_entry = AcquireLock | InitSession, - uint16_t on_leave = FreeLock | TearDownSession, - FILE *in = NULL, - FILE *out = NULL, - FILE *err = NULL); + Locker(ScriptInterpreterPython *py_interpreter = nullptr, + uint16_t on_entry = AcquireLock | InitSession, + uint16_t on_leave = FreeLock | TearDownSession, + FILE *in = nullptr, + FILE *out = nullptr, + FILE *err = nullptr); ~Locker () override; - private: - + private: bool DoAcquireLock (); @@ -522,9 +504,23 @@ public: ScriptInterpreterPython *m_python_interpreter; // FILE* m_tmp_fh; PyGILState_STATE m_GILState; - }; + }; + protected: + class SynchronicityHandler + { + private: + lldb::DebuggerSP m_debugger_sp; + ScriptedCommandSynchronicity m_synch_wanted; + bool m_old_asynch; + public: + SynchronicityHandler(lldb::DebuggerSP, + ScriptedCommandSynchronicity); + + ~SynchronicityHandler(); + }; + enum class AddLocation { Beginning, @@ -533,6 +529,21 @@ protected: static void AddToSysPath(AddLocation location, std::string path); + bool + EnterSession(uint16_t on_entry_flags, + FILE *in, + FILE *out, + FILE *err); + + void + LeaveSession(); + + void + SaveTerminalState(int fd); + + void + RestoreTerminalState(); + uint32_t IsExecutingPython () const { @@ -588,6 +599,7 @@ protected: uint32_t m_lock_count; PyThreadState *m_command_thread_state; }; + } // namespace lldb_private #endif // LLDB_DISABLE_PYTHON _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits