我正在使用btrace分析应用程序并面临限制。我尝试获取 current 的名称java.lang.Thread
。通常你可以调用getName()
,但在 btrace-scripts 中是禁止的(任何调用异常BTraceUtils
)。
有什么想法如何从中获取 Stringchar[]
吗?
最初的任务是检查线程名称是否包含子字符串,然后才注销跟踪信息(减少输出)。
一些可能对其他人有帮助的信息:
https://btrace.dev.java.net/source/browse/btrace/docs/usersguide.html?rev=1.7
特别是 BTrace 类
- 无法创建新对象。
- 无法创建新数组。
- 不能抛出异常。
- 无法捕捉异常。
- 不能进行任意实例或静态方法调用 - 只能从 BTrace 程序调用 com.sun.btrace.BTraceUtils 类的公共静态方法。
- 不能分配给目标程序的类和对象的静态或实例字段。但是,BTrace 类可以分配给它自己的静态字段(“跟踪状态”可以改变)。
- 不能有实例字段和方法。BTrace 类只允许使用静态公共 void 返回方法。所有字段都必须是静态的。
- 不能有外部、内部、嵌套或本地类。
- 不能有同步块或同步方法。
- 不能有循环(for、while、do..while)
- 不能扩展任意类(超类必须是 java.lang.Object)
- 无法实现接口。
- 不能包含断言语句。
- 不能使用类文字。
http://btrace.kenai.com/javadoc/1.1/com/sun/btrace/BTraceUtils.html
只需使用BTraceUtils中的“内置”函数名称(线程)。它作为其参数的类型之一是 Thread ,它返回线程的名称。此外,还有一个threadId(thread)函数,它返回线程的 ID。
您可以在BTraceUtils类中找到许多有用的函数- 查看在线javadoc。
干杯,
JB