aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp')
-rw-r--r--lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp59
1 files changed, 0 insertions, 59 deletions
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
index 8655338..418e223 100644
--- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
+++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
@@ -1067,23 +1067,6 @@ void ScriptInterpreterPythonImpl::ExecuteInterpreterLoop() {
}
bool ScriptInterpreterPythonImpl::Interrupt() {
- // PyErr_SetInterrupt was introduced in 3.2.
-#if (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 2) || (PY_MAJOR_VERSION > 3)
- // If the interpreter isn't evaluating any Python at the moment then return
- // false to signal that this function didn't handle the interrupt and the
- // next component should try handling it.
- if (!IsExecutingPython())
- return false;
-
- // Tell Python that it should pretend to have received a SIGINT.
- PyErr_SetInterrupt();
- // PyErr_SetInterrupt has no way to return an error so we can only pretend the
- // signal got successfully handled and return true.
- // Python 3.10 introduces PyErr_SetInterruptEx that could return an error, but
- // the error handling is limited to checking the arguments which would be
- // just our (hardcoded) input signal code SIGINT, so that's not useful at all.
- return true;
-#else
Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_SCRIPT));
if (IsExecutingPython()) {
@@ -1105,7 +1088,6 @@ bool ScriptInterpreterPythonImpl::Interrupt() {
"ScriptInterpreterPythonImpl::Interrupt() python code not running, "
"can't interrupt");
return false;
-#endif
}
bool ScriptInterpreterPythonImpl::ExecuteOneLineWithReturn(
@@ -3311,28 +3293,6 @@ ScriptInterpreterPythonImpl::AcquireInterpreterLock() {
return py_lock;
}
-namespace {
-/// Saves the current signal handler for the specified signal and restores
-/// it at the end of the current scope.
-struct RestoreSignalHandlerScope {
- /// The signal handler.
- struct sigaction m_prev_handler;
- int m_signal_code;
- RestoreSignalHandlerScope(int signal_code) : m_signal_code(signal_code) {
- // Initialize sigaction to their default state.
- std::memset(&m_prev_handler, 0, sizeof(m_prev_handler));
- // Don't install a new handler, just read back the old one.
- struct sigaction *new_handler = nullptr;
- int signal_err = ::sigaction(m_signal_code, new_handler, &m_prev_handler);
- lldbassert(signal_err == 0 && "sigaction failed to read handler");
- }
- ~RestoreSignalHandlerScope() {
- int signal_err = ::sigaction(m_signal_code, &m_prev_handler, nullptr);
- lldbassert(signal_err == 0 && "sigaction failed to restore old handler");
- }
-};
-} // namespace
-
void ScriptInterpreterPythonImpl::InitializePrivate() {
if (g_initialized)
return;
@@ -3368,25 +3328,6 @@ void ScriptInterpreterPythonImpl::InitializePrivate() {
"lldb.embedded_interpreter; from "
"lldb.embedded_interpreter import run_python_interpreter; "
"from lldb.embedded_interpreter import run_one_line");
-
-#if (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 2) || (PY_MAJOR_VERSION > 3)
- // Python will not just overwrite its internal SIGINT handler but also the
- // one from the process. Backup the current SIGINT handler to prevent that
- // Python deletes it.
- RestoreSignalHandlerScope save_sigint(SIGINT);
-
- // Setup a default SIGINT signal handler that works the same way as the
- // normal Python REPL signal handler which raises a KeyboardInterrupt.
- // Also make sure to not pollute the user's REPL with the signal module nor
- // our utility function.
- PyRun_SimpleString("def lldb_setup_sigint_handler():\n"
- " import signal;\n"
- " def signal_handler(sig, frame):\n"
- " raise KeyboardInterrupt()\n"
- " signal.signal(signal.SIGINT, signal_handler);\n"
- "lldb_setup_sigint_handler();\n"
- "del lldb_setup_sigint_handler\n");
-#endif
}
void ScriptInterpreterPythonImpl::AddToSysPath(AddLocation location,