1.0 简介
2.0 已知问题
2.1 Web 开发环境
2.2 WebSphere Application Server 调试
2.3 JavaScript 调试器
2.4 测试和部署工具(服务器工具)
2.5 Java 开发工具(JDT)调试器
2.6 编译语言调试器
2.7 本地语言限制
2.8 SQLJ 调试器
2.9 活动脚本调试
JSP 调试:
- 当在 WebSphere Application Server 上进行测试时,可以调试 JSP 文件。如果是在 Tomcat 服务器上进行测试,则不能在 JSP 断点处停止调试器。
- 可以在下列标记内的 JSP 文件中设置断点:
- 采用以下格式的 JSP scriptlet:<% %>
- 采用以下格式的 JSP 表达式:<%= %>
- 采用以下格式的 JSP 声明:<%! %>
- jsp:useBean、jsp:getProperty 和 jsp:setProperty 标记
- 定制标记
- 不能对下列标记集设置断点:
- HTML 代码
- JSP 伪指令
- 所有其它标准 JSP 标记(jsp:include 和 jsp:forward 等)
- 如果要将工作空间从较早版本的 WebSphere Studio 迁移到此版本,则将需要删除 JSP 断点然后再重新创建它们。
- 对于 EJB home 方法,逐步调试方式将失败:如果您使用 WebSphere Application Server 调试适配器来启动调试会话,则对于 EJB home 方法,逐步调试方式将无法停止。如果想要调试这些方法,应使用断点。
- 不支持从 Java 单步返回到 JavaScript:如果想要能够从 Java 返回到 JavaScript 代码,则使用断点。
- 调试 JSP:
- 对于不包含任何可执行代码的 JSP,逐步调试将不工作。
- 如果您使用 WebSphere Application Server 调试适配器来启动调试会话,则不能检查或显示 JSP 变量和表达式。
- “运行至行”在 JSP 中不受支持。
- 设置 JSP 断点可能比较慢。如果具有多个 JSP 断点,请增加额外时间以便调试器进行初始化。
- JSP 声明块中的静态变量的断点将不起作用,并且可能导致其它断点问题。
- JSP 断点不支持诸如命中计数、条件、所选线程和 VM 暂挂策略等断点属性。
- 不要在“调试器编辑器”中设置 Java 断点:必须在“Java 编辑器”中而不是在“调试器编辑器”中设置 Java 断点。
- 使用“更改源文件调试”视图弹出菜单项:如果您更改通过使用堆栈帧上的更改源文件弹出菜单项来显示的源文件,则新文件可能不会在编辑器中打开。要解决此问题,单击另一个堆栈帧,然后再次单击原来的堆栈帧。新文件就应该在编辑器中打开。
- 调试控制台:在“调试”控制台中,与开放类型的超链接将不工作。
- 热交换之后的堆栈帧标注:如果在热代码替换之后某些堆栈帧具有类似如下的标注:
<unknown receiving type>(<unknown declaring type>).<unknown method name>(<unknown arguments>) line: not available <unknown line number>可通过切换至另一透视图然后返回“调试”透视图来获取正确的标注。
- 在完成 JavaScript 对象的构造函数之前,不能检查 JavaScript 对象:可以单步执行构造函数的执行,但是在完成构造函数(您已退出构造函数)之前,不能检查被构造的对象。
- 单步执行顶部堆栈帧下面的堆栈帧:JavaScript 不支持单步跳过和单步返回除了顶部堆栈帧之外的堆栈帧。
- JSP include:不支持在 JSP include 中调试 JavaScript。
- 单步跳出递归函数:调试递归 JavaScript 函数的用户将发现,当他们单步跳出递归函数时,他们就返回到了顶部执行层。
- 不要展开包含 writer 或 inputStream 变量的对象:当检查 JavaScript 对象时,用户要注意不要展开包含 writer 或 inputStream 变量的对象。这将导致调试器变成无响应的。
- 测试环境:当使用“WebSphere V5 测试环境”时,JavaScript 调试将不工作。在 APAR #PQ73036 下修正了此问题。
当决定在调试方式下运行服务器时,请考虑下列各项:
- 与在非调试方式下运行相比,服务器的启动和运行速度都会比较慢。
- WebSphere Application Server 编译 JSP 页所需的时间显著增加。
在 Java 开发工具(JDT)发行说明和工作台(IDE)发行说明中提供了有关 Java 开发工具的已知问题与限制的信息。这些信息链接至随此产品一起安装的主要产品自述文件。
- “找不到 DLL”错误:如果启动已编译的调试会话产生 Windows 消息“找不到 DLL”,则除去 LOCPATH 环境变量。
- 在程序的源或列表视图中找不到现有字符串:当使用大型源或列表文件时,“调试器”编辑器中的查找功能可能找不到字符串。当编辑器中仅装入了一部分源或列表时,就可能会发生此问题。
- 存储器视图显示不正确的字符:当存储器视图格式化为“十六进制和字符”时,十六进制数据是正确的,但只有具有单字节编码的字符才能正确显示。
- 滚动跳转的行数比期望的要多:在“调试器编辑器”中前滚或后滚跳转的行数比期望的要多。要到达特定行,使用转至行操作(Ctrl-L)。
- 双向(BiDi)限制:在调试已经使用不是本机代码页的代码页来编码的 JSP 时,您将不能使用“调试器”编辑器。
- 编译语言调试器:
- 在单字节(SBCS)系统上,“编译语言调试器”不支持程序名或者传递包含超过 0x7F 的字符的程序参数。
- 不支持在调试对象名称和调试对象自变量使用 NL 字符。
当使用 J9 JVM 进行调试时执行热交换时,如果在调用堆栈上有任何 SQLJ 方法,则将获得堆栈上的过时方法对话框。如果热交换是 SQLJ 类,则将在 JVM 中重新装入该类,但是,在下次调用该类中的方法之前,您将看不到所执行的新代码。
如果对 SQLJ 类进行热交换,则在当前调试会话期间,SQLJ 断点可能对此类不起作用。
HTML 脚本应用程序
当尝试启动“HTML 脚本应用程序”调试调试会话时,您可能会遇到下列问题:
- 持久“创建调试目标时出错”消息。
- 当尝试连接至现有浏览器以进行调试时,调试器无法获得正在运行的浏览器的列表。
可以通过执行下列操作来更正这些问题:
- 在尝试启动另一个调试会话之前,关闭所有正在运行的浏览器和“Microsoft(R) Windows 资源管理器”窗口。
- 如果以上步骤仍然不能解决问题,则说明 mdm.exe 进程已被毁坏。关闭所有正在运行的浏览器和文件资源管理器,然后从“Windows(R) 任务管理器”中终止 mdm.exe。重新启动调试会话。
当尝试连接至现有浏览器以进行调试时,不要尝试连接至 WebSphere Studio Workbench 内部浏览器。连接至内部浏览器以进行调试将导致工作台停止响应,并且可能会产生意外的结果。
在“HTML 脚本应用程序”调试会话期间您可能会遇到下列问题:
- 当调试会话被暂挂时,在编辑器中未突出显示当前位置。
- 不能安装断点。
- 如果源位于工作台工作空间外部,无法显示源。
可以通过执行下列操作来更正这些问题:
- 浏览器可能未正确装入页面。刷新 Microsoft(R) Internet Explorer 中的页面(可能需要多次执行此操作)。
- 如果刷新页面仍然不能更正该问题,则应终止调试会话。关闭所有正在运行的浏览器和文件资源管理器,然后重新启动调试会话。
- 如果以上步骤仍然不能解决问题,则说明 mdm.exe 进程已被毁坏。终止调试会话、所有正在运行的浏览器和文件资源管理器。然后从“Windows(R) 任务管理器”中终止 mdm.exe,然后再重新启动调试会话。
在“活动脚本调试”期间打开工作台“帮助”窗口或内部浏览器可能会影响调试会话并且导致意外的行为。
如果将页面部署到服务器上了,则会忽略在调试会话之前设置的断点。要设置断点,暂挂调试会话以显示源并在该临时页面上设置断点。有关详细信息,参阅“设置行断点”。
“活动脚本”调试器使用 Microsoft(R) Script Debugger 来获取调试信息。有关与 Microsoft(R) Script Debugger 相关的其它问题,参阅其 ReadMe.htm。
脚本主机应用程序
当尝试启动“脚本主机应用程序”调试调试会话时,您可能会遇到下列问题:
- 持久“创建调试目标时出错”消息。
可以通过执行下列操作来更正此问题:
- 在尝试启动另一个调试会话之前,关闭所有正在运行的浏览器和“Microsoft(R) Windows 资源管理器”窗口。
- 如果以上步骤仍然不能解决问题,则说明 mdm.exe 进程已被毁坏。关闭所有正在运行的浏览器和文件资源管理器,然后从“Windows(R) 任务管理器”中终止 mdm.exe。重新启动调试会话。
(C) Copyright IBM Corporation 2000, 2003. All Rights Reserved.