!4112 修复嵌套函数断点停留位置问题

Merge pull request !4112 from 李秦朗/continue_into
This commit is contained in:
opengauss_bot
2023-09-12 11:43:53 +00:00
committed by Gitee
3 changed files with 14 additions and 11 deletions

View File

@ -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;
}
}

View File

@ -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)

View File

@ -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();