快速业务通道

IBM的Java诊断,第4部分 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
 Start analysis of F:\20070307.dmp.zip Image created on Windows XP

在 ISA 中运行分析程序

要通过 ISA 运行自己的分析程序,需要将它们打包为一个 JAR 文件,称为 analyzers.jar ,并使用 您的文件替换 installDir/plugins/com.ibm.java.diagnostics.dbda.isa_(version number)/WEB- INF/lib 中的同名文件。要创建 JAR 文件,执行上一节 “从命令行运行分析程序” 开始部分介绍的步 骤。

要运行分析程序,需要将完全限定名添加到 ISA Dump Analyzer 视图的 Optional Parameters 文本 字段中。图 1 显示了所需的可选参数以及 清单 1 运行 DWAnalyze 示例的输出:

图 1. 通过 ISA 运行 DWAnalyze

IBM的Java诊断,第4部分(8)

时间:2011-11-02 IBM Helen Beeken

图 2 显示了所需的可选参数以及 清单 2 中运行 DWReport 示例的输出:

图 2. 通过 ISA 运行 DWReport

SML:概述

可以使用 Java 语言编写所有四个分析模块,并在这在很多情况下都是一种适当的方法。然而,有时 候您也许想避免 Java 语言的复杂性,而使用一些非常简单的脚本功能调用现有的分析程序。针对这些情 况,我们的团队提供了一种基于状态机概念的语言,进入状态机之后会在各个状态之间移动,直到完成分 析。我们将这种语言称为状态机语言(SML)。我们没有对 SML 使用任何循环结构并且进一步进行了限制 :一个状态只能访问一次。目的是确保可以快速构建脚本并且避免发生无休止的重复分析。

SML 由以下关键字组成:

import {name} 定义分析程序的完整包名,并使脚本可以使用其简写形式。state {name} 定义当前状 态的名称。{variable} = {analyzer}:{rule} 将一个变量设置为运行分析的结果。if ({boolean expr}) 条件语句。else 处理 if 语句为 false 时的情形。fi 结束 if 语句。newState {state name} 切换到 一个新状态,由 state 关键字定义。report {analyzer} 在给定的分析程序上调用 produceReport() 方 法。print {message} 为用户输出消息。error {message} 在结果摘要中输出错误消息。terminate {result} 使用给定结果结束脚本。可能的结果包括 OK、ERROR、FATAL、TRUE 和 FALSE。

必须将 SML 脚本保存到以 .sml 为扩展名的文件中。下一节将展示如何使用脚本将两个分析程序链接 为一个简单的分析流。

使用 SML 将分析程序链接起来

如上节所述,您可以使用 SML 将分析程序链接起来,SML 附带在 Dump Analyzer 中。清单 4 展示了 这种脚本。它将您在本文前面创建的分析程序链接起来。

要继续本示例,需要在 Eclipse AnalysisModule 项目中创建一个名为 script.sml 的文件并将清单 4 的内容复制到新创建的文件中。

IBM的Java诊断,第4部分(9)

时间:2011-11-02 IBM Helen Beeken

清单 4. 将两个分析程序链接在一起的脚本

// need to import the Analyzers to run import mypackage.DWAnalyze import mypackage.DWReport // The state value is used to control the flow through the sml file // It needs to be set to start initially state start // multi is set to the value returned from running the DWAnalyze class. // It is the value that is returned from the analysisRules logic // in this class multi = DWAnalyze:isMultiProcessor if (multi = true)    // depending on the value of multi, print some output    print DWAnalyze detected a multiprocessor dump else    print DWAnalyze did not detect find a multiprocessor dump fi // Next run the DWReport class r

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号