Java技术,IBM风格: 监视和判断问题 - 编程入门网
行。这不需要对 Java 代码进行任何手工处理,可以使用它跟踪 JCL、第三方包或应用程序代码。
方法跟踪功能尤其适合调试发生竞争状态和在方法之间传递了不合适的参数而导致异常的情况。由于跟踪时间戳具有毫秒级的精度,方法跟踪还可以用来调试性能问题。 在命令行上调用方法跟踪的办法是,添加 methods 关键字标志并将 mt 设置给目的地关键字之一(maximal、minimal、print)。methods 关键字允许按照类、方法名或这两者选择要跟踪的方法。可以使用通配符和取反操作符 ! 建立复杂的选择条件。例如: -Xtrace:print=mt,methods={*.*,!java/lang/*.*}:对于除了 java.lang 包中的方法和类之外的所有方法和类,将方法跟踪写到 stderr 中。 -Xtrace:maximal=mt,output=trace.out,methods={tests/mytest/*.*}:对于 tests.mytest 包中的所有方法,将方法跟踪写到文件中。(注意,这个选项只选择要跟踪的方法。) 在发生跟踪事件时触发 IBM 跟踪引擎最强大的特性之一是它能够在发生跟踪事件时触发,这有助于创建目的明确的跟踪输出并减少产生的跟踪数据量。这会提高被调试的应用程序的性能(由于开销大大降低了)和解释数据的速度(由于多余的数据减少了)。 跟踪引擎能够在任何给定的跟踪点上触发,包括 VM 内部的跟踪点或 Java 方法,而且在发生事件时可以执行许多操作,见表 2: 表 2. 跟踪引擎操作
Java技术,IBM风格: 监视和判断问题(4)时间:2011-01-30 IBM Chris Bailey可以使用 trigger 命令行关键字激活触发跟踪,这个关键字决定在发生事件时执行表 2 中的哪些操作。注意,触发选项控制其他跟踪属性已经选择的跟踪数据是正常生成,还是被阻塞。 使用以下格式指定方法事件上的触发:
当进入与 method spec 匹配的任何方法时,执行 entry action。当退出方法时,执行 exit action。如果指定了 delay count,那么只有当进入和退出的次数大于 delay count 时才执行 entry action 和 exit action。如果指定了 match count,那么操作的执行次数不超过这个值。请考虑以下示例:
这在第一次(而且只在第一次)调用 StackOverflowError 方法时(进行调用的是 <clinit> 方法),创建一个非破坏性的系统转储。 可以使用 suspend 和 resume 选项并结合 resumecount 或 suspendcount 关键字来暂停和恢复单独的线程或所有线程:
这些 |
||||||||||||||||||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |