diff --git a/lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp b/lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp --- a/lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp +++ b/lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp @@ -241,9 +241,6 @@ if (signo != LLDB_INVALID_SIGNAL_NUMBER) data = signo; - // Before thread resumes, clear any cached register data structures - GetRegisterContext().InvalidateAllRegisters(); - return NativeProcessLinux::PtraceWrapper(PTRACE_CONT, GetID(), nullptr, reinterpret_cast(data)); } @@ -265,9 +262,6 @@ if (signo != LLDB_INVALID_SIGNAL_NUMBER) data = signo; - // Before thread resumes, clear any cached register data structures - GetRegisterContext().InvalidateAllRegisters(); - // If hardware single-stepping is not supported, we just do a continue. The // breakpoint on the next instruction has been setup in // NativeProcessLinux::Resume. @@ -325,6 +319,9 @@ if (m_state == StateType::eStateStepping) m_step_workaround.reset(); + // On every stop, clear any cached register data structures + GetRegisterContext().InvalidateAllRegisters(); + const StateType new_state = StateType::eStateStopped; MaybeLogStateChange(new_state); m_state = new_state;