#4547: When debugging a very large function, it was not always
possible to update the lineno attribute of the current frame.
diff --git a/Lib/test/test_trace.py b/Lib/test/test_trace.py
index f5b8dbf..f69af8d 100644
--- a/Lib/test/test_trace.py
+++ b/Lib/test/test_trace.py
@@ -740,6 +740,23 @@
     def test_19_no_jump_without_trace_function(self):
         no_jump_without_trace_function()
 
+    def test_20_large_function(self):
+        d = {}
+        exec("""def f(output):        # line 0
+            x = 0                     # line 1
+            y = 1                     # line 2
+            '''                       # line 3
+            %s                        # lines 4-1004
+            '''                       # line 1005
+            x += 1                    # line 1006
+            output.append(x)          # line 1007
+            return""" % ('\n' * 1000,), d)
+        f = d['f']
+
+        f.jump = (2, 1007)
+        f.output = [0]
+        self.run_test(f)
+
     def test_jump_to_firstlineno(self):
         # This tests that PDB can jump back to the first line in a
         # file.  See issue #1689458.  It can only be triggered in a