diff --git a/python/helpers/pydev/pydevd_tracing.py b/python/helpers/pydev/pydevd_tracing.py index 53752e54d107..5cdfce73b96a 100644 --- a/python/helpers/pydev/pydevd_tracing.py +++ b/python/helpers/pydev/pydevd_tracing.py @@ -50,8 +50,8 @@ def _internal_set_trace(tracing_func): if TracingFunctionHolder._warn: frame = get_frame() if frame is not None and frame.f_back is not None: - if not frame.f_back.f_code.co_filename.lower().endswith('threading.py'): - + filename = frame.f_back.f_code.co_filename.lower() + if not filename.endswith('threading.py') and not filename.endswith('pydevd_tracing.py'): message = \ '\nPYDEV DEBUGGER WARNING:' + \ '\nsys.settrace() should not be used when the debugger is being used.' + \ diff --git a/python/testData/debug/test_calling_settrace_warning.py b/python/testData/debug/test_calling_settrace_warning.py new file mode 100644 index 000000000000..ba2f624377ac --- /dev/null +++ b/python/testData/debug/test_calling_settrace_warning.py @@ -0,0 +1,3 @@ +import sys + +sys.settrace(None) \ No newline at end of file diff --git a/python/testSrc/com/jetbrains/env/python/PythonDebuggerTest.java b/python/testSrc/com/jetbrains/env/python/PythonDebuggerTest.java index 56c6fb3e8f2b..969ebad44af8 100644 --- a/python/testSrc/com/jetbrains/env/python/PythonDebuggerTest.java +++ b/python/testSrc/com/jetbrains/env/python/PythonDebuggerTest.java @@ -2186,4 +2186,22 @@ public class PythonDebuggerTest extends PyEnvTestCase { } }); } + + @Test + public void testCallingSettraceWarning() { + runPythonTest(new PyDebuggerTask("/debug", "test_calling_settrace_warning.py") { + @Override + public void before() { + toggleBreakpoint(getFilePath(getScriptName()), 2); + } + + @Override + public void testing() throws Exception { + waitForPause(); + resume(); + waitForTerminate(); + outputContains("PYDEV DEBUGGER WARNING:\nsys.settrace() should not be used when the debugger is being used."); + } + }); + } }