[Lldb-commits] [lldb] r239463 - [LLDB][MIPS] Getting correct signals for MIPS Host

Mohit K. Bhakkad mohit.bhakkad at gmail.com
Wed Jun 10 03:02:23 PDT 2015


Author: mohit.bhakkad
Date: Wed Jun 10 05:02:21 2015
New Revision: 239463

URL: http://llvm.org/viewvc/llvm-project?rev=239463&view=rev
Log:
[LLDB][MIPS] Getting correct signals for MIPS Host
Patch by Nitesh Jain

Reviewers: clayborg, ovyalov.
Subscribers: jaydeep, bhushan, dsanders, mohit.bhakkad, sagar, labath, lldb-commits.
Differential Revision: http://reviews.llvm.org/D10180

Modified:
    lldb/trunk/source/Host/linux/Host.cpp

Modified: lldb/trunk/source/Host/linux/Host.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/linux/Host.cpp?rev=239463&r1=239462&r2=239463&view=diff
==============================================================================
--- lldb/trunk/source/Host/linux/Host.cpp (original)
+++ lldb/trunk/source/Host/linux/Host.cpp Wed Jun 10 05:02:21 2015
@@ -37,7 +37,7 @@
 #include "lldb/Symbol/ObjectFile.h"
 #include "Plugins/Process/Linux/ProcFileReader.h"
 #include "Plugins/Process/Utility/LinuxSignals.h"
-
+#include "Plugins/Process/Utility/MipsLinuxSignals.h"
 using namespace lldb;
 using namespace lldb_private;
 
@@ -390,11 +390,24 @@ Host::GetEnvironment (StringList &env)
     return i;
 }
 
+// TODO: Generalize this with a function Host::GetSignals() as discussed at http://reviews.llvm.org/D10180 
 const lldb_private::UnixSignalsSP&
 Host::GetUnixSignals ()
 {
-    static const lldb_private::UnixSignalsSP s_unix_signals_sp (new process_linux::LinuxSignals ());
-    return s_unix_signals_sp;
+    ArchSpec target_arch = HostInfoBase::GetArchitecture();
+    if(target_arch.GetTriple ().getArch () == llvm::Triple::mips64 ||
+       target_arch.GetTriple ().getArch () == llvm::Triple::mips64el ||
+       target_arch.GetTriple ().getArch () == llvm::Triple::mips ||
+       target_arch.GetTriple ().getArch () == llvm::Triple::mipsel) {
+        static const lldb_private::UnixSignalsSP s_unix_signals_sp (new process_linux::MipsLinuxSignals ());
+        return s_unix_signals_sp;
+    }
+    else
+    {
+        static const lldb_private::UnixSignalsSP s_unix_signals_sp (new process_linux::LinuxSignals ());
+        return s_unix_signals_sp;
+    }
+
 }
 
 Error





More information about the lldb-commits mailing list