diff options
Diffstat (limited to 'lldb/include')
| -rw-r--r-- | lldb/include/lldb/API/SBPlatform.h | 3 | ||||
| -rw-r--r-- | lldb/include/lldb/API/SBUnixSignals.h | 11 | ||||
| -rw-r--r-- | lldb/include/lldb/Core/StructuredData.h | 5 | ||||
| -rw-r--r-- | lldb/include/lldb/Host/Host.h | 4 | ||||
| -rw-r--r-- | lldb/include/lldb/Target/Platform.h | 6 | ||||
| -rw-r--r-- | lldb/include/lldb/Target/Process.h | 10 | ||||
| -rw-r--r-- | lldb/include/lldb/Target/UnixSignals.h | 17 | ||||
| -rw-r--r-- | lldb/include/lldb/lldb-forward.h | 2 | ||||
| -rw-r--r-- | lldb/include/lldb/lldb-private-forward.h | 1 |
9 files changed, 43 insertions, 16 deletions
diff --git a/lldb/include/lldb/API/SBPlatform.h b/lldb/include/lldb/API/SBPlatform.h index db4a754103c..80ad1c06e86 100644 --- a/lldb/include/lldb/API/SBPlatform.h +++ b/lldb/include/lldb/API/SBPlatform.h @@ -189,6 +189,9 @@ namespace lldb { SBError SetFilePermissions (const char *path, uint32_t file_permissions); + SBUnixSignals + GetUnixSignals() const; + protected: friend class SBDebugger; diff --git a/lldb/include/lldb/API/SBUnixSignals.h b/lldb/include/lldb/API/SBUnixSignals.h index 9eae30739bb..ae48b63e1a2 100644 --- a/lldb/include/lldb/API/SBUnixSignals.h +++ b/lldb/include/lldb/API/SBUnixSignals.h @@ -65,17 +65,20 @@ public: protected: friend class SBProcess; + friend class SBPlatform; - SBUnixSignals (lldb::ProcessSP &process_sp); + SBUnixSignals(lldb::ProcessSP &process_sp); - lldb::ProcessSP + SBUnixSignals(lldb::PlatformSP &platform_sp); + + lldb::UnixSignalsSP GetSP() const; void - SetSP (const lldb::ProcessSP &process_sp); + SetSP(const lldb::UnixSignalsSP &signals_sp); private: - lldb::ProcessWP m_opaque_wp; + lldb::UnixSignalsWP m_opaque_wp; }; diff --git a/lldb/include/lldb/Core/StructuredData.h b/lldb/include/lldb/Core/StructuredData.h index 8acfa310dea..7da29e48299 100644 --- a/lldb/include/lldb/Core/StructuredData.h +++ b/lldb/include/lldb/Core/StructuredData.h @@ -238,14 +238,15 @@ public: { } - void + bool ForEach (std::function <bool(Object* object)> const &foreach_callback) const { for (const auto &object_sp : m_items) { if (foreach_callback(object_sp.get()) == false) - break; + return false; } + return true; } diff --git a/lldb/include/lldb/Host/Host.h b/lldb/include/lldb/Host/Host.h index caf33634057..235367a7cc5 100644 --- a/lldb/include/lldb/Host/Host.h +++ b/lldb/include/lldb/Host/Host.h @@ -244,8 +244,8 @@ public: #endif // !defined(__ANDROID__) && !defined(__ANDROID_NDK__) #endif // defined (__APPLE__) || defined (__linux__) || defined (__FreeBSD__) || defined (__GLIBC__) || defined(__NetBSD__) - static const lldb_private::UnixSignalsSP& - GetUnixSignals (); + static const lldb::UnixSignalsSP & + GetUnixSignals(); static Error LaunchProcess (ProcessLaunchInfo &launch_info); diff --git a/lldb/include/lldb/Target/Platform.h b/lldb/include/lldb/Target/Platform.h index cd9b8723aef..feaac57b128 100644 --- a/lldb/include/lldb/Target/Platform.h +++ b/lldb/include/lldb/Target/Platform.h @@ -863,6 +863,12 @@ class ModuleCache; return 1; } + virtual const lldb::UnixSignalsSP & + GetRemoteUnixSignals(); + + const lldb::UnixSignalsSP & + GetUnixSignals(); + //------------------------------------------------------------------ /// Locate a queue name given a thread's qaddr /// diff --git a/lldb/include/lldb/Target/Process.h b/lldb/include/lldb/Target/Process.h index 39c5fcd0421..6db0ca91daf 100644 --- a/lldb/include/lldb/Target/Process.h +++ b/lldb/include/lldb/Target/Process.h @@ -950,7 +950,7 @@ public: /// Construct with a shared pointer to a target, the Process listener, /// and the appropriate UnixSignalsSP for the process. //------------------------------------------------------------------ - Process(Target &target, Listener &listener, const UnixSignalsSP &unix_signals_sp); + Process(Target &target, Listener &listener, const lldb::UnixSignalsSP &unix_signals_sp); //------------------------------------------------------------------ /// Destructor. @@ -1402,10 +1402,10 @@ public: Signal (int signal); void - SetUnixSignals (const UnixSignalsSP &signals_sp); + SetUnixSignals(const lldb::UnixSignalsSP &signals_sp); - UnixSignals & - GetUnixSignals (); + const lldb::UnixSignalsSP & + GetUnixSignals(); //================================================================== // Plug-in Process Control Overrides @@ -3237,7 +3237,7 @@ protected: lldb::DynamicCheckerFunctionsUP m_dynamic_checkers_ap; ///< The functions used by the expression parser to validate data that expressions use. lldb::OperatingSystemUP m_os_ap; lldb::SystemRuntimeUP m_system_runtime_ap; - UnixSignalsSP m_unix_signals_sp; /// This is the current signal set for this process. + lldb::UnixSignalsSP m_unix_signals_sp; /// This is the current signal set for this process. lldb::ABISP m_abi_sp; lldb::IOHandlerSP m_process_input_reader; Communication m_stdio_communication; diff --git a/lldb/include/lldb/Target/UnixSignals.h b/lldb/include/lldb/Target/UnixSignals.h index f47a90bbf54..76955deabc7 100644 --- a/lldb/include/lldb/Target/UnixSignals.h +++ b/lldb/include/lldb/Target/UnixSignals.h @@ -26,6 +26,9 @@ namespace lldb_private class UnixSignals { public: + static lldb::UnixSignalsSP + Create(const ArchSpec &arch); + //------------------------------------------------------------------ // Constructors and Destructors //------------------------------------------------------------------ @@ -89,6 +92,12 @@ public: int32_t GetNextSignalNumber (int32_t current_signal) const; + int32_t + GetNumSignals() const; + + int32_t + GetSignalAtIndex(int32_t index) const; + // We assume that the elements of this object are constant once it is constructed, // since a process should never need to add or remove symbols as it runs. So don't // call these functions anywhere but the constructor of your subclass of UnixSignals or in @@ -130,14 +139,18 @@ protected: ~Signal () {} }; - void + virtual void Reset (); typedef std::map <int32_t, Signal> collection; collection m_signals; - DISALLOW_COPY_AND_ASSIGN (UnixSignals); + // GDBRemote signals need to be copyable. + UnixSignals(const UnixSignals &rhs); + + const UnixSignals & + operator=(const UnixSignals &rhs) = delete; }; } // Namespace lldb diff --git a/lldb/include/lldb/lldb-forward.h b/lldb/include/lldb/lldb-forward.h index e0c2ae4b8b8..da90ac4775e 100644 --- a/lldb/include/lldb/lldb-forward.h +++ b/lldb/include/lldb/lldb-forward.h @@ -423,6 +423,8 @@ namespace lldb { #ifndef LLDB_DISABLE_PYTHON typedef std::shared_ptr<lldb_private::ScriptedSyntheticChildren> ScriptedSyntheticChildrenSP; #endif + typedef std::shared_ptr<lldb_private::UnixSignals> UnixSignalsSP; + typedef std::weak_ptr<lldb_private::UnixSignals> UnixSignalsWP; typedef std::shared_ptr<lldb_private::UnwindAssembly> UnwindAssemblySP; typedef std::shared_ptr<lldb_private::UnwindPlan> UnwindPlanSP; typedef lldb_private::SharingPtr<lldb_private::ValueObject> ValueObjectSP; diff --git a/lldb/include/lldb/lldb-private-forward.h b/lldb/include/lldb/lldb-private-forward.h index 424aa4cc53f..bcfeb68b0b2 100644 --- a/lldb/include/lldb/lldb-private-forward.h +++ b/lldb/include/lldb/lldb-private-forward.h @@ -34,7 +34,6 @@ namespace lldb_private typedef std::weak_ptr<lldb_private::NativeProcessProtocol> NativeProcessProtocolWP; typedef std::shared_ptr<lldb_private::NativeRegisterContext> NativeRegisterContextSP; typedef std::shared_ptr<lldb_private::NativeThreadProtocol> NativeThreadProtocolSP; - typedef std::shared_ptr<lldb_private::UnixSignals> UnixSignalsSP; } #endif // #if defined(__cplusplus) |

