summaryrefslogtreecommitdiffstats
path: root/lldb/include
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/include')
-rw-r--r--lldb/include/lldb/API/SBPlatform.h3
-rw-r--r--lldb/include/lldb/API/SBUnixSignals.h11
-rw-r--r--lldb/include/lldb/Core/StructuredData.h5
-rw-r--r--lldb/include/lldb/Host/Host.h4
-rw-r--r--lldb/include/lldb/Target/Platform.h6
-rw-r--r--lldb/include/lldb/Target/Process.h10
-rw-r--r--lldb/include/lldb/Target/UnixSignals.h17
-rw-r--r--lldb/include/lldb/lldb-forward.h2
-rw-r--r--lldb/include/lldb/lldb-private-forward.h1
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)
OpenPOWER on IntegriCloud