我正在使用btrace分析应用程序并面临限制。我试着得到一个当前java.lang.Thread
的名字。 Normaly你可以调用getName()
,但它在btrace-scripts中被禁止(任何调用异常BTraceUtils
)。
有没有想过如何从char[]
获取字符串?
原始任务是检查线程名称是否包含子字符串,然后仅注销跟踪信息(减少输出)。
答案 0 :(得分:3)
可能对其他人有帮助的一些信息:
https://btrace.dev.java.net/source/browse/btrace/docs/usersguide.html?rev=1.7
特别是BTrace类
- 无法创建新对象。
- 无法创建新阵列。
- 不能抛出异常。
- 无法捕捉异常。
- 不能进行任意实例或静态方法调用 - 只能公开 静态方法 com.sun.btrace.BTraceUtils类可以 从BTrace计划中调用。
- 无法分配目标程序类的静态或实例字段 对象。但是,BTrace类可以分配 它自己的静态字段(“跟踪 国家“可以变异”。
- 不能包含实例字段和方法。只有静态公共空白 允许返回方法 BTrace课程。所有领域都必须 是静态的。
- 不能有外部,内部,嵌套或本地类。
- 不能有同步块或同步方法。
- 不能有循环(for,while,do..while)
- 不能扩展任意类(超类必须是 java.lang.Object中)
- 无法实现接口。
- 不能包含断言语句。
- 不能使用类文字。
http://btrace.kenai.com/javadoc/1.1/com/sun/btrace/BTraceUtils.html
答案 1 :(得分:1)
只需使用 BTraceUtils 中的“内置”功能 名称(主题) 。它作为参数的一种类型是Thread,它返回线程的名称。此外,还有 threadId(线程) 函数,它返回线程的ID。
您可以在 BTraceUtils 课程中找到许多有用的功能 - 请查看在线javadoc。
干杯,
JB