[Lldb-commits] [lldb] r116641 - in /lldb/trunk: include/lldb/Target/UnixSignals.h source/Target/UnixSignals.cpp
Greg Clayton
gclayton at apple.com
Fri Oct 15 16:16:40 PDT 2010
Author: gclayton
Date: Fri Oct 15 18:16:40 2010
New Revision: 116641
URL: http://llvm.org/viewvc/llvm-project?rev=116641&view=rev
Log:
Fixed the UnixSignals class to be able to get a signal by name, short name, or signal number when using:
int32_t UnixSignals::GetSignalNumberFromName (const char *name) const;
Modified:
lldb/trunk/include/lldb/Target/UnixSignals.h
lldb/trunk/source/Target/UnixSignals.cpp
Modified: lldb/trunk/include/lldb/Target/UnixSignals.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/UnixSignals.h?rev=116641&r1=116640&r2=116641&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Target/UnixSignals.h (original)
+++ lldb/trunk/include/lldb/Target/UnixSignals.h Fri Oct 15 18:16:40 2010
@@ -130,14 +130,6 @@
~Signal () {}
};
- Signal *
- GetSignalByName (const char *name,
- int32_t &signo);
-
- const Signal *
- GetSignalByName (const char *name,
- int32_t &signo) const;
-
void
Reset ();
Modified: lldb/trunk/source/Target/UnixSignals.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/UnixSignals.cpp?rev=116641&r1=116640&r2=116641&view=diff
==============================================================================
--- lldb/trunk/source/Target/UnixSignals.cpp (original)
+++ lldb/trunk/source/Target/UnixSignals.cpp Fri Oct 15 18:16:40 2010
@@ -13,6 +13,7 @@
// C++ Includes
// Other libraries and framework includes
// Project includes
+#include "lldb/Interpreter/Args.h"
using namespace lldb_private;
@@ -117,41 +118,6 @@
m_signals.erase (pos);
}
-UnixSignals::Signal *
-UnixSignals::GetSignalByName (const char *name, int32_t &signo)
-{
- ConstString const_name (name);
-
- collection::iterator pos, end = m_signals.end ();
- for (pos = m_signals.begin (); pos != end; pos++)
- {
- if ((const_name == pos->second.m_name) || (const_name == pos->second.m_short_name))
- {
- signo = pos->first;
- return &pos->second;
- }
- }
- return NULL;
-}
-
-
-const UnixSignals::Signal *
-UnixSignals::GetSignalByName (const char *name, int32_t &signo) const
-{
- ConstString const_name (name);
-
- collection::const_iterator pos, end = m_signals.end ();
- for (pos = m_signals.begin (); pos != end; pos++)
- {
- if (const_name == pos->second.m_name)
- {
- signo = pos->first;
- return &(pos->second);
- }
- }
- return NULL;
-}
-
const char *
UnixSignals::GetSignalAsCString (int signo) const
{
@@ -173,12 +139,19 @@
int32_t
UnixSignals::GetSignalNumberFromName (const char *name) const
{
- int32_t signo;
- const Signal *signal = GetSignalByName (name, signo);
- if (signal == NULL)
- return LLDB_INVALID_SIGNAL_NUMBER;
- else
+ ConstString const_name (name);
+
+ collection::const_iterator pos, end = m_signals.end ();
+ for (pos = m_signals.begin (); pos != end; pos++)
+ {
+ if ((const_name == pos->second.m_name) || (const_name == pos->second.m_short_name))
+ return pos->first;
+ }
+
+ const int32_t signo = Args::StringToSInt32(name, LLDB_INVALID_SIGNAL_NUMBER, 0);
+ if (signo != LLDB_INVALID_SIGNAL_NUMBER)
return signo;
+ return LLDB_INVALID_SIGNAL_NUMBER;
}
int32_t
@@ -253,7 +226,10 @@
bool
UnixSignals::SetShouldSuppress (const char *signal_name, bool value)
{
- return SetShouldSuppress (GetSignalNumberFromName (signal_name), value);
+ const int32_t signo = GetSignalNumberFromName (signal_name);
+ if (signo != LLDB_INVALID_SIGNAL_NUMBER)
+ return SetShouldSuppress (signo, value);
+ return false;
}
bool
@@ -280,7 +256,10 @@
bool
UnixSignals::SetShouldStop (const char *signal_name, bool value)
{
- return SetShouldStop (GetSignalNumberFromName (signal_name), value);
+ const int32_t signo = GetSignalNumberFromName (signal_name);
+ if (signo != LLDB_INVALID_SIGNAL_NUMBER)
+ return SetShouldStop (signo, value);
+ return false;
}
bool
@@ -307,6 +286,8 @@
bool
UnixSignals::SetShouldNotify (const char *signal_name, bool value)
{
- return SetShouldNotify (GetSignalNumberFromName (signal_name), value);
+ const int32_t signo = GetSignalNumberFromName (signal_name);
+ if (signo != LLDB_INVALID_SIGNAL_NUMBER)
+ return SetShouldNotify (signo, value);
+ return false;
}
-
More information about the lldb-commits
mailing list