From cdc22a889e4e4e22e72be01d217ddcc0ad063b43 Mon Sep 17 00:00:00 2001 From: "Mohit K. Bhakkad" Date: Thu, 7 May 2015 05:56:27 +0000 Subject: [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 --- lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp') 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 -- cgit v1.2.3