diff options
| author | Ed Maste <emaste@FreeBSD.org> | 2015-02-06 21:38:51 +0000 | 
|---|---|---|
| committer | Ed Maste <emaste@FreeBSD.org> | 2015-02-06 21:38:51 +0000 | 
| commit | 205afe679855a4ce8149cdaa94d3f0868ce796dc (patch) | |
| tree | 09bc83f73246ee3c7a779605cd0122093d2a8a19 /source/Plugins/Process/POSIX/POSIXThread.cpp | |
| parent | 0cac4ca3916ac24ab6139d03cbfd18db9e715bfe (diff) | |
Notes
Diffstat (limited to 'source/Plugins/Process/POSIX/POSIXThread.cpp')
| -rw-r--r-- | source/Plugins/Process/POSIX/POSIXThread.cpp | 45 | 
1 files changed, 35 insertions, 10 deletions
diff --git a/source/Plugins/Process/POSIX/POSIXThread.cpp b/source/Plugins/Process/POSIX/POSIXThread.cpp index d48f8f9dd307d..1057585e1b2a2 100644 --- a/source/Plugins/Process/POSIX/POSIXThread.cpp +++ b/source/Plugins/Process/POSIX/POSIXThread.cpp @@ -20,27 +20,30 @@  #include "lldb/Core/Debugger.h"  #include "lldb/Core/State.h"  #include "lldb/Host/Host.h" +#include "lldb/Host/HostNativeThread.h"  #include "lldb/Host/HostInfo.h"  #include "lldb/Target/Process.h"  #include "lldb/Target/StopInfo.h"  #include "lldb/Target/Target.h"  #include "lldb/Target/ThreadSpec.h" +#include "llvm/ADT/SmallString.h"  #include "POSIXStopInfo.h"  #include "POSIXThread.h"  #include "ProcessPOSIX.h"  #include "ProcessPOSIXLog.h" -#include "ProcessMonitor.h" +#include "Plugins/Process/Linux/ProcessMonitor.h"  #include "RegisterContextPOSIXProcessMonitor_arm64.h"  #include "RegisterContextPOSIXProcessMonitor_mips64.h" +#include "RegisterContextPOSIXProcessMonitor_powerpc.h"  #include "RegisterContextPOSIXProcessMonitor_x86.h" -#include "RegisterContextLinux_arm64.h" -#include "RegisterContextLinux_i386.h" -#include "RegisterContextLinux_x86_64.h" -#include "RegisterContextFreeBSD_i386.h" -#include "RegisterContextFreeBSD_mips64.h" -#include "RegisterContextFreeBSD_x86_64.h" - -#include "UnwindLLDB.h" +#include "Plugins/Process/Utility/RegisterContextLinux_arm64.h" +#include "Plugins/Process/Utility/RegisterContextLinux_i386.h" +#include "Plugins/Process/Utility/RegisterContextLinux_x86_64.h" +#include "Plugins/Process/Utility/RegisterContextFreeBSD_i386.h" +#include "Plugins/Process/Utility/RegisterContextFreeBSD_mips64.h" +#include "Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.h" +#include "Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.h" +#include "Plugins/Process/Utility/UnwindLLDB.h"  using namespace lldb;  using namespace lldb_private; @@ -140,7 +143,9 @@ POSIXThread::GetName ()  {      if (!m_thread_name_valid)      { -        SetName(Host::GetThreadName(GetProcess()->GetID(), GetID()).c_str()); +        llvm::SmallString<32> thread_name; +        HostNativeThread::GetName(GetID(), thread_name); +        m_thread_name = thread_name.c_str();          m_thread_name_valid = true;      } @@ -164,6 +169,14 @@ POSIXThread::GetRegisterContext()              case llvm::Triple::FreeBSD:                  switch (target_arch.GetMachine())                  { +                    case llvm::Triple::ppc: +#ifndef __powerpc64__ +                        reg_interface = new RegisterContextFreeBSD_powerpc32(target_arch); +                        break; +#endif +                    case llvm::Triple::ppc64: +                        reg_interface = new RegisterContextFreeBSD_powerpc64(target_arch); +                        break;                      case llvm::Triple::mips64:                          reg_interface = new RegisterContextFreeBSD_mips64(target_arch);                          break; @@ -226,6 +239,14 @@ POSIXThread::GetRegisterContext()                      m_reg_context_sp.reset(reg_ctx);                      break;                  } +            case llvm::Triple::ppc: +            case llvm::Triple::ppc64: +                { +                    RegisterContextPOSIXProcessMonitor_powerpc *reg_ctx = new RegisterContextPOSIXProcessMonitor_powerpc(*this, 0, reg_interface); +                    m_posix_thread = reg_ctx; +                    m_reg_context_sp.reset(reg_ctx); +                    break; +                }              case llvm::Triple::x86:              case llvm::Triple::x86_64:                  { @@ -621,6 +642,8 @@ POSIXThread::GetRegisterIndexFromOffset(unsigned offset)      case llvm::Triple::aarch64:      case llvm::Triple::mips64: +    case llvm::Triple::ppc: +    case llvm::Triple::ppc64:      case llvm::Triple::x86:      case llvm::Triple::x86_64:          { @@ -652,6 +675,8 @@ POSIXThread::GetRegisterName(unsigned reg)      case llvm::Triple::aarch64:      case llvm::Triple::mips64: +    case llvm::Triple::ppc: +    case llvm::Triple::ppc64:      case llvm::Triple::x86:      case llvm::Triple::x86_64:          name = GetRegisterContext()->GetRegisterName(reg);  | 
