diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index 300cf39..c487d29 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -1449,6 +1449,9 @@
             if sys.platform != 'sunos5':
                 self.expected.add('test_nis')
 
+            if support.python_is_optimized():
+                self.expected.add("test_gdb")
+
             self.valid = True
 
     def isvalid(self):
diff --git a/Lib/test/support.py b/Lib/test/support.py
index 31528a9..132bc56 100644
--- a/Lib/test/support.py
+++ b/Lib/test/support.py
@@ -20,6 +20,9 @@
 import subprocess
 import imp
 import time
+import sysconfig
+
+
 try:
     import _thread
 except ImportError:
@@ -885,6 +888,16 @@
     gc.collect()
 
 
+def python_is_optimized():
+    """Find if Python was built with optimizations."""
+    cflags = sysconfig.get_config_vars()['PY_CFLAGS']
+    final_opt = ""
+    for opt in cflags.split():
+        if opt.startswith('-O'):
+            final_opt = opt
+    return final_opt and final_opt != '-O0'
+
+
 #=======================================================================
 # Decorator for running a function in a different locale, correctly resetting
 # it afterwards.
diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py
index bac8d36..55597ce 100644
--- a/Lib/test/test_gdb.py
+++ b/Lib/test/test_gdb.py
@@ -9,9 +9,8 @@
 import sys
 import unittest
 import locale
-import sysconfig
 
-from test.support import run_unittest, findfile
+from test.support import run_unittest, findfile, python_is_optimized
 
 try:
     gdb_version, _ = subprocess.Popen(["gdb", "--version"],
@@ -665,15 +664,8 @@
                                     r".*\na = 1\nb = 2\nc = 3\n.*")
 
 def test_main():
-    cflags = sysconfig.get_config_vars()['PY_CFLAGS']
-    final_opt = ""
-    for opt in cflags.split():
-        if opt.startswith('-O'):
-            final_opt = opt
-    if final_opt and final_opt != '-O0':
-        raise unittest.SkipTest("Python was built with compiler optimizations, "
-                                "tests can't reliably succeed")
-
+    if python_is_optimized():
+        raise unittest.SkipTest("Python was compiled with optimizations")
     run_unittest(PrettyPrintTests,
                  PyListTests,
                  StackNavigationTests,
