powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / работа с dmbs_debug
5 сообщений из 5, страница 1 из 1
работа с dmbs_debug
    #32138183
bambr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет.
в анонимной pl/sql блоке пишу команду
dbms_debug.debug_on();

выполняю, все уходит в туман (pl/sql developer зависает)

это из-за чего такое ?
...
Рейтинг: 0 / 0
работа с dmbs_debug
    #32138709
.dba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дык plsql developer тоже этот пакет использует. Зачем тебе два раза?
...
Рейтинг: 0 / 0
работа с dmbs_debug
    #32138724
bambr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хочу посмотреть, какая информация об ошибках доступна при отладке заведомо неправильного sql запроса.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
работа с dmbs_debug
    #39743583
Дмитрий Ш.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет, коллеги.
Чтобы не плодить новую тему, напишу здесь. Тем более, что симптомы очень похожи.

В target сессии выполняю:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
SQL*Plus: Release 12.2.0.1.0 Production on Thu Dec 6 13:42:53 2018

Copyright (c) 1982, 2017, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining
and Real Application Testing options

SQL> select * from v$version;

BANNER
-------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE    11.2.0.4.0      Production
TNS for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production

SQL> create or replace procedure pr_debug_test
  2  is
  3  n number := 0;
  4  begin
  5      for i in 1..10
  6      loop
  7          n := n + 100;
  8          dbms_output.put_line('N='||n);
  9      end loop;
 10  end;
 11  /

Procedure created.

SQL> ALTER SESSION SET PLSQL_DEBUG = true;

Session altered.

SQL> ALTER PROCEDURE pr_debug_test COMPILE DEBUG;

Procedure altered.

SQL> SET SERVEROUTPUT ON
SQL> begin
  2      dbms_output.put_line(DBMS_DEBUG.INITIALIZE ('MISESS', 0));
  3  end;
  4  /
MISESS

PL/SQL procedure successfully completed.

SQL> select DBMS_DEBUG.SET_TIMEOUT (300) from dual;

DBMS_DEBUG.SET_TIMEOUT(300)
---------------------------
                        300

SQL> execute DBMS_DEBUG.DEBUG_ON (TRUE, FALSE);

PL/SQL procedure successfully completed.



Вызов DBMS_DEBUG.DEBUG_ON висит до timeout. В данном случае около 5 мин.

Пока висит в debug сессии выполняю:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
SQL> ALTER SESSION SET PLSQL_DEBUG = true;

Session altered.

SQL> exec dbms_debug.attach_session('MISESS');

PL/SQL procedure successfully completed.

SQL> SET SERVEROUTPUT ON
SQL> DECLARE
  2      runinfo dbms_debug.runtime_info;
  3      retval binary_integer;
  4  BEGIN
  5  retval := dbms_debug.synchronize(runinfo, 0 +
  6      dbms_debug.info_getstackdepth +
  7      dbms_debug.info_getbreakpoint +
  8      dbms_debug.info_getlineinfo + 0);
  9      if retval = dbms_debug.success then
 10          dbms_output.put_line(' Sync Successful ');
 11      else
 12          dbms_output.put_line(' Sync Unsuccessful error = '|| retval);
 13      end if;
 14  END;
 15  /
Sync Successful

PL/SQL procedure successfully completed.

SQL> begin
  2   if DBMS_DEBUG.TARGET_PROGRAM_RUNNING
  3   then  dbms_output.put_line('Running');
  4   else dbms_output.put_line('Idle');
  5   end if;
  6  end;
  7  /
Running

PL/SQL procedure successfully completed.

SQL> execute DBMS_DEBUG.PING;

PL/SQL procedure successfully completed.



После того как в target-сессии закочилось выполнение DEBUG_ON в debug-сессии выполняю:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
SQL> execute DBMS_DEBUG.PING;
BEGIN DBMS_DEBUG.PING; END;

*
ERROR at line 1:
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at "SYS.PBREAK", line 1360
ORA-06512: at "SYS.PBRPH", line 933
ORA-06512: at "SYS.DBMS_DEBUG", line 790
ORA-06512: at line 1


SQL> DECLARE
  2      runinfo dbms_debug.runtime_info;
  3      retval binary_integer;
  4  BEGIN
  5  retval := dbms_debug.synchronize(runinfo, 0 +
  6      dbms_debug.info_getstackdepth +
  7      dbms_debug.info_getbreakpoint +
  8      dbms_debug.info_getlineinfo + 0);
  9      if retval = dbms_debug.success then
 10          dbms_output.put_line(' Sync Successful ');
 11      else
 12          dbms_output.put_line(' Sync Unsuccessful error = '|| retval);
 13      end if;
 14  END;
 15  /
Sync Unsuccessful error = 31

PL/SQL procedure successfully completed.



synchronize выполняется до timeout. Видимо, в этот момент связь между сессиями уже разорвана, и процесс debug закончился, даже не успев начаться: у меня даже не было возможности запустить свою процедуру в target-сессии.
Подскажите, что я делаю не так?

P.S. Debug средствами Toad проходит успешно.
...
Рейтинг: 0 / 0
работа с dmbs_debug
    #39743641
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Ш.Подскажите, что я делаю не так?Изобретаешь велосипед.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / работа с dmbs_debug
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]