patch 8.2.0056: execution stack is incomplete and inefficient

Problem:    Execution stack is incomplete and inefficient.
Solution:   Introduce a proper execution stack and use it instead of
            sourcing_name/sourcing_lnum.  Create a string only when used.
diff --git a/src/testdir/test_debugger.vim b/src/testdir/test_debugger.vim
index 861bd6f..c541802 100644
--- a/src/testdir/test_debugger.vim
+++ b/src/testdir/test_debugger.vim
@@ -14,7 +14,7 @@
     " Verify the expected output
     let lnum = 20 - len(a:1)
     for l in a:1
-      call WaitForAssert({-> assert_equal(l, term_getline(a:buf, lnum))})
+      call WaitForAssert({-> assert_equal(l, term_getline(a:buf, lnum))}, 200)
       let lnum += 1
     endfor
   endif