Инструментирование выполнения приложения Java (не только байт-код) - PullRequest
2 голосов
/ 25 декабря 2011

Я занимаюсь инструментарием Java-приложений.Но доступные инструментальные средства, которые используют ASM или BCEL, позволяют только обрабатывать байт-код.Ребята, знаете ли вы какой-нибудь инструмент, который может контролировать выполнение приложения (как в материале, который был не только в байт-коде, но и в JVM).

Например, если приложение имеет класс A

class A
{
 int a;

 public A()
 {}
}

Когда я делаю A obj = new A(), тогда байт-код не будет содержать записи в obj.a, но JVM сделает это, AFIK .

Есть и другие вещи, которые нельзя записать в байт-код.Итак, вы, ребята, можете сказать мне, существует ли такая структура, которая может фиксировать операции, выполняемые JVM.

1 Ответ

1 голос
/ 25 декабря 2011

Если вам нужен полный контроль над приборами, в идеале вам необходим полный доступ к источнику и возможность его изменения. В противном случае вы зависите от того, что сохраняет байт-код.

Наш инструментарий реинжиниринга программного обеспечения DMS - это система преобразования программ, обеспечивающая такой доступ к источнику. Используя Java Front End , DMS может анализировать (Java) код, создавать AST, применять произвольные преобразования к AST и регенерировать инструментированный Java-код.

То, что вы выберете для инструмента, зависит от вас. Эта статья о коде инструментов описывает, как построить классическое тестовое покрытие, но идеи общие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...