From 4f0f0f1245fa2a5c2db995f8625b53f2f1f97a9e Mon Sep 17 00:00:00 2001 From: l30039603 Date: Tue, 12 Sep 2023 10:42:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B5=8C=E5=A5=97=E5=87=BD?= =?UTF-8?q?=E6=95=B0=E6=96=AD=E7=82=B9=E5=81=9C=E7=95=99=E4=BD=8D=E7=BD=AE?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/pl/plpgsql/src/pl_debugger.cpp | 2 +- .../regress/expected/pl_debugger_client.out | 20 ++++++++++--------- src/test/regress/sql/pl_debugger_client.sql | 3 ++- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/common/pl/plpgsql/src/pl_debugger.cpp b/src/common/pl/plpgsql/src/pl_debugger.cpp index d9d7269f7..d2676b8b5 100644 --- a/src/common/pl/plpgsql/src/pl_debugger.cpp +++ b/src/common/pl/plpgsql/src/pl_debugger.cpp @@ -190,7 +190,7 @@ void check_debug(PLpgSQL_function* func, PLpgSQL_execstate* estate) /* maintain session's debug server is on base turn on function */ u_sess->plsql_cxt.cur_debug_server = func->debug; } - func->debug->stop_next_stmt = true; + func->debug->stop_next_stmt = need_continue_into ? false : true; } } diff --git a/src/test/regress/expected/pl_debugger_client.out b/src/test/regress/expected/pl_debugger_client.out index 4c9d95ff2..9d994e05a 100755 --- a/src/test/regress/expected/pl_debugger_client.out +++ b/src/test/regress/expected/pl_debugger_client.out @@ -1559,22 +1559,23 @@ select funcname, lineno, query from dbe_pldebugger.continue(); "anonymous block" | 8 | k = test_increment(3); (1 row) -select funcname, lineno, query from dbe_pldebugger.step(); - funcname | lineno | query -----------------+--------+----------------- - test_increment | 5 | x := x + 1; -(1 row) - -select funcname, lineno, query from dbe_pldebugger.next(); +insert into tmp_holder select * from dbe_pldebugger.add_breakpoint((select oid from pg_proc where proname='test_increment'), 6); -- ok +select funcname, lineno, query from dbe_pldebugger.continue(); funcname | lineno | query ----------------+--------+----------------- test_increment | 6 | y := y * 2; (1 row) +select funcname, lineno, query from dbe_pldebugger.step(); + funcname | lineno | query +----------------+--------+--------------- + test_increment | 7 | RETURN y; +(1 row) + select frameno, funcname, lineno, query from dbe_pldebugger.backtrace(); frameno | funcname | lineno | query ---------+-------------------+--------+---------------------------- - 0 | test_increment | 6 | y := y * 2; + 0 | test_increment | 7 | RETURN y; 1 | "anonymous block" | 8 | k = test_increment(3); (2 rows) @@ -1614,5 +1615,6 @@ select * from tmp_holder; true true true -(8 rows) + 2 +(9 rows) diff --git a/src/test/regress/sql/pl_debugger_client.sql b/src/test/regress/sql/pl_debugger_client.sql index aca8125d5..1e2873fe8 100644 --- a/src/test/regress/sql/pl_debugger_client.sql +++ b/src/test/regress/sql/pl_debugger_client.sql @@ -483,8 +483,9 @@ insert into tmp_holder select * from dbe_pldebugger.enable_breakpoint(1); -- ok insert into tmp_holder select * from dbe_pldebugger.delete_breakpoint(0); -- ok select funcname, lineno, query from dbe_pldebugger.next(); select funcname, lineno, query from dbe_pldebugger.continue(); +insert into tmp_holder select * from dbe_pldebugger.add_breakpoint((select oid from pg_proc where proname='test_increment'), 6); -- ok +select funcname, lineno, query from dbe_pldebugger.continue(); select funcname, lineno, query from dbe_pldebugger.step(); -select funcname, lineno, query from dbe_pldebugger.next(); select frameno, funcname, lineno, query from dbe_pldebugger.backtrace(); select * from dbe_pldebugger.info_locals(); select funcname, lineno, query from dbe_pldebugger.finish();