Конвертировать char [] в String в BTrace - PullRequest
3 голосов
/ 16 июня 2010

Я профилирую приложение с btrace и столкнулся с ограничением.Я пытаюсь получить имя текущего java.lang.Thread.Обычно вы можете вызывать getName(), но это запрещено в btrace-скриптах (любые исключения вызовов BTraceUtils).
Есть ли идея, как получить строку из char[]?

Первоначальная задача - проверкаесли имя потока содержит подстроку и только тогда выйдет информация трассировки (сокращение вывода).

Ответы [ 2 ]

3 голосов
/ 16 июня 2010

Некоторая информация, которая может быть полезна другим:

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

В частности, класс BTrace

  • не может создавать новые объекты.
  • не может создавать новые массивы.
  • не может генерировать исключения.
  • не может поймать исключения.
  • не может делать произвольные вызовы экземпляров или статических методов - только публичные статические методы Класс com.sun.btrace.BTraceUtils может вызываться из программы BTrace.
  • не может назначать статические поля или поля экземпляров классов целевой программы и объекты. Но, класс BTrace может назначить на свои статические поля состояние "может быть видоизменено).
  • не может иметь полей и методов экземпляра. Только статическая публичная пустота методы возврата разрешены для Класс BTrace. И все поля должны быть статичным.
  • не может иметь внешние, внутренние, вложенные или локальные классы.
  • не может иметь синхронизированные блоки или синхронизированные методы.
  • не может иметь петли (для, пока, делайте .. в то время)
  • не может расширять произвольный класс (суперкласс должен быть java.lang.Object)
  • не может реализовать интерфейсы.
  • не может содержать утверждения assert.
  • не может использовать литералы класса.

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

1 голос
/ 17 июня 2010

просто используйте «встроенную» функцию имя (нить) из BTraceUtils . Одним из типов, который он принимает в качестве аргумента, является Thread, и он возвращает имя потока. Также есть функция threadId (thread) , которая возвращает идентификатор потока.

Вы можете найти много полезных функций в классе BTraceUtils - посмотрите онлайн javadoc .

Приветствия

JB

...