2010-06-16 47 views
3

我正在通過btrace分析應用程序並面臨限制。我嘗試獲取當前java.lang.Thread的名稱。通常您可以撥打getName()但在btrace腳本中禁止使用(任何呼叫例外BTraceUtils)。
有沒有想法如何從char[]獲得字符串?將char []轉換爲BTrace中的字符串

原始任務是檢查線程的名稱是否包含子字符串,然後註銷跟蹤信息(減少輸出)。

+0

我不知道btrace,但是它可以簡單地使用'新的String(charArray)你的情況'? – 2010-06-16 16:19:31

+0

像chris_l我不知道btrace,但你可以創建一個字符串變量,遍歷char []並將每個字符添加到字符串 – Kyra 2010-06-16 16:23:45

+0

這是一個問題 - 沒有新的對象創建 – Max 2010-06-16 16:27:10

回答

1

只是使用 「內置」 功能名(線程)BTraceUtils。其中一種類型是Thread,它返回線程的名字。另外,還有threadId(線程)函數返回線程的ID。

您可以在BTraceUtils類中找到許多有用的功能 - 請查看在線javadoc

乾杯,

JB

+0

謝謝JB!這真的幫助我。 – Max 2010-06-17 07:46:24

3

一些信息可能幫助他人:

https://btrace.dev.java.net/source/browse/btrace/docs/usersguide.html?rev=1.7

特別是,BTrace類

  • 不能創建新的對象。
  • 無法創建新陣列。
  • 不能拋出異常。
  • 無法捕捉異常。
  • 無法進行任意實例或靜態方法調用 - 只有公衆 靜態方法 com.sun.btrace.BTraceUtils類可能會從一個BTrace程序調用 。
  • 無法分配給目標程序的類和 對象的靜態或實例字段。但是,BTrace類可以將 分配給它自己的靜態字段(「跟蹤 狀態」可以被突變)。
  • 不能有實例字段和方法。對於 BTrace類,只允許使用static void 返回方法。並且所有字段必須爲 爲靜態。
  • 不能有外部,內部,嵌套或本地類。
  • 不能有同步塊或同步方法。
  • 不能有循環機制(for,同時,do..while)
  • 不能擴展任意類(超類必須 java.lang.Object繼承)
  • 無法實現的接口。
  • 不能包含斷言語句。
  • 不能使用類文字。

http://btrace.kenai.com/javadoc/1.1/com/sun/btrace/BTraceUtils.html