我在调试 pl sql 代码时遇到了一个奇怪的情况。
我将 sql developer 设置为侦听调试连接。在 java 代码中,我使用以下代码附加调试器:
CallableStatement cstmt = null;
try {
cstmt = getConnection().prepareCall("begin DBMS_DEBUG_JDWP.CONNECT_TCP( '10.1.1.17', 4000); end;");
cstmt.execute();
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeStatement(cstmt);
}
调试器连接成功,即我可以在 sql developer 中看到Run Manager
该连接存在。
尽管创建了连接,但调试器不起作用。有时断点没有打上绿色标记,有时是,但断点仍然不起作用。在任何情况下,调试器都不会在中断时停止,调用的过程会成功执行,就好像没有中断一样。
我放置中断的包被编译为调试,Start Debugger Option
设置为Step Over
. 我还尝试了Sql Developer
3.2.2 和 3.0.6、3.0.4 的相同行为。我在“Sql Developer”和应用程序中使用的用户是相同的,并且该用户具有调试权限(DEBUG CONNECT SESSION
, DEBUG ANY PROCEDURE
)。我已经没有如何让它发挥作用的想法了。
接下来要尝试什么,如何诊断这个问题?