summaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
diff options
context:
space:
mode:
authorMohit K. Bhakkad <mohit.bhakkad@gmail.com>2015-05-07 05:56:27 +0000
committerMohit K. Bhakkad <mohit.bhakkad@gmail.com>2015-05-07 05:56:27 +0000
commitcdc22a889e4e4e22e72be01d217ddcc0ad063b43 (patch)
treed2d2898d75ef3e1419e2fb04f4599bb309b3e3b8 /lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
parent2668a487a78cdc416d1cbf01fc98d00c7fc4def3 (diff)
[LLDB][MIPS] Software single stepping
Patch by Jaydeep Patil Reviewers: clayborg, jasonmolenda Subscribers: bhushan, mohit.bhakkad, sagar, lldb-commits. Differential Revision: http://reviews.llvm.org/D9519 llvm-svn: 236696
Diffstat (limited to 'lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp')
-rw-r--r--lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp b/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
index 9bd6ee141cf0..e38dc925c552 100644
--- a/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
@@ -2885,10 +2885,8 @@ ReadRegisterCallback (EmulateInstruction *instruction,
Error error = emulator_baton->m_reg_context->ReadRegister(full_reg_info, reg_value);
if (error.Success())
- {
- emulator_baton->m_register_values[reg_info->kinds[eRegisterKindDWARF]] = reg_value;
return true;
- }
+
return false;
}
@@ -2995,6 +2993,9 @@ NativeProcessLinux::SetupSoftwareSingleStepping(NativeThreadProtocolSP thread_sp
error = SetSoftwareBreakpoint(next_pc, 4);
}
}
+ else if (m_arch.GetMachine() == llvm::Triple::mips64
+ || m_arch.GetMachine() == llvm::Triple::mips64el)
+ error = SetSoftwareBreakpoint(next_pc, 4);
else
{
// No size hint is given for the next breakpoint
@@ -3012,7 +3013,10 @@ NativeProcessLinux::SetupSoftwareSingleStepping(NativeThreadProtocolSP thread_sp
bool
NativeProcessLinux::SupportHardwareSingleStepping() const
{
- return m_arch.GetMachine() != llvm::Triple::arm;
+ if (m_arch.GetMachine() == llvm::Triple::arm
+ || m_arch.GetMachine() == llvm::Triple::mips64 || m_arch.GetMachine() == llvm::Triple::mips64el)
+ return false;
+ return true;
}
Error