Files
openGauss-server/contrib/gms_debug/expected/gms_debugger_client3.out
2024-11-21 14:43:03 +08:00

145 lines
3.4 KiB
Plaintext

-- wait for server establishment
CREATE OR REPLACE FUNCTION wait_for_gms_debug_extension()
RETURNS BOOLEAN AS $$
DECLARE
extension_exists BOOLEAN;
BEGIN
-- 初始化变量
extension_exists := FALSE;
-- 循环查询扩展是否存在
WHILE NOT extension_exists LOOP
-- 查询扩展是否存在
PERFORM 1 FROM pg_extension WHERE extname = 'gms_debug';
IF FOUND THEN
-- 如果扩展存在,则退出循环
extension_exists := TRUE;
ELSE
-- 如果扩展不存在,则等待一段时间再重试
PERFORM pg_sleep(1); -- 等待1秒
END IF;
END LOOP;
-- 返回扩展存在的标志
RETURN extension_exists;
END;
$$ LANGUAGE plpgsql;
DO $$
BEGIN
IF wait_for_gms_debug_extension() THEN
-- 扩展存在,执行下一步操作
END IF;
END $$;
set search_path = gms_debugger_test3;
CREATE or REPLACE FUNCTION gms_next()
returns void as $$
declare
run_info gms_debug.runtime_info;
ret binary_integer;
begin
ret := gms_debug.continue(run_info, 2, 2);
RAISE NOTICE 'breakpoint= %', run_info.breakpoint;
RAISE NOTICE 'stackdepth= %', run_info.stackdepth;
RAISE NOTICE 'line= %', run_info.line#;
RAISE NOTICE 'reason= %', run_info.reason;
RAISE NOTICE 'ret= %',ret;
end;
$$ LANGUAGE plpgsql;
CREATE or REPLACE FUNCTION gms_continue()
returns void as $$
declare
run_info gms_debug.runtime_info;
ret binary_integer;
begin
ret := gms_debug.continue(run_info, 0, 2);
RAISE NOTICE 'breakpoint= %', run_info.breakpoint;
RAISE NOTICE 'stackdepth= %', run_info.stackdepth;
RAISE NOTICE 'line= %', run_info.line#;
RAISE NOTICE 'reason= %', run_info.reason;
RAISE NOTICE 'ret= %',ret;
end;
$$ LANGUAGE plpgsql;
-- attach debug server
select * from gms_debug.attach_session('datanode1-0');
attach_session
----------------
(1 row)
select pg_sleep(3);
pg_sleep
----------
(1 row)
select gms_next();
NOTICE: breakpoint= -1
CONTEXT: referenced column: gms_next
NOTICE: stackdepth= 0
CONTEXT: referenced column: gms_next
NOTICE: line= 6
CONTEXT: referenced column: gms_next
NOTICE: reason= 6
CONTEXT: referenced column: gms_next
NOTICE: ret= 0
CONTEXT: referenced column: gms_next
gms_next
----------
(1 row)
select gms_next();
NOTICE: breakpoint= -1
CONTEXT: referenced column: gms_next
NOTICE: stackdepth= 0
CONTEXT: referenced column: gms_next
NOTICE: line= 10
CONTEXT: referenced column: gms_next
NOTICE: reason= 6
CONTEXT: referenced column: gms_next
NOTICE: ret= 0
CONTEXT: referenced column: gms_next
gms_next
----------
(1 row)
select gms_continue();
NOTICE: breakpoint= -1
CONTEXT: referenced column: gms_continue
NOTICE: stackdepth= 0
CONTEXT: referenced column: gms_continue
NOTICE: line= 14
CONTEXT: referenced column: gms_continue
NOTICE: reason= 0
CONTEXT: referenced column: gms_continue
NOTICE: ret= 0
CONTEXT: referenced column: gms_continue
gms_continue
--------------
(1 row)
select gms_next();
NOTICE: breakpoint= -1
CONTEXT: referenced column: gms_next
NOTICE: stackdepth= 0
CONTEXT: referenced column: gms_next
NOTICE: line= 6
CONTEXT: referenced column: gms_next
NOTICE: reason= 6
CONTEXT: referenced column: gms_next
NOTICE: ret= 0
CONTEXT: referenced column: gms_next
gms_next
----------
(1 row)
select gms_debug.detach_session();
detach_session
----------------
(1 row)