summaryrefslogtreecommitdiff
path: root/source/Plugins/Process/Linux/SingleStepCheck.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/Plugins/Process/Linux/SingleStepCheck.h')
-rw-r--r--source/Plugins/Process/Linux/SingleStepCheck.h57
1 files changed, 0 insertions, 57 deletions
diff --git a/source/Plugins/Process/Linux/SingleStepCheck.h b/source/Plugins/Process/Linux/SingleStepCheck.h
deleted file mode 100644
index afeda7310349..000000000000
--- a/source/Plugins/Process/Linux/SingleStepCheck.h
+++ /dev/null
@@ -1,57 +0,0 @@
-//===-- SingleStepCheck.h ------------------------------------- -*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef liblldb_SingleStepCheck_H_
-#define liblldb_SingleStepCheck_H_
-
-#include <memory>
-#include <sched.h>
-#include <sys/types.h>
-
-namespace lldb_private {
-namespace process_linux {
-
-// arm64 linux had a bug which prevented single-stepping and watchpoints from
-// working on non-boot cpus, due to them being incorrectly initialized after
-// coming out of suspend. This issue is particularly affecting android M, which
-// uses suspend ("doze mode") quite aggressively. This code detects that
-// situation and makes single-stepping work by doing all the step operations on
-// the boot cpu.
-//
-// The underlying issue has been fixed in android N and linux 4.4. This code can
-// be removed once these systems become obsolete.
-
-#if defined(__arm64__) || defined(__aarch64__)
-class SingleStepWorkaround {
- ::pid_t m_tid;
- cpu_set_t m_original_set;
-
- SingleStepWorkaround(const SingleStepWorkaround &) = delete;
- void operator=(const SingleStepWorkaround &) = delete;
-
-public:
- SingleStepWorkaround(::pid_t tid, cpu_set_t original_set)
- : m_tid(tid), m_original_set(original_set) {}
- ~SingleStepWorkaround();
-
- static std::unique_ptr<SingleStepWorkaround> Get(::pid_t tid);
-};
-#else
-class SingleStepWorkaround {
-public:
- static std::unique_ptr<SingleStepWorkaround> Get(::pid_t tid) {
- return nullptr;
- }
-};
-#endif
-
-} // end namespace process_linux
-} // end namespace lldb_private
-
-#endif // #ifndef liblldb_SingleStepCheck_H_