Применение AspectJ для отладки чужой jar-ки

💡 Усі статті, обговорення, новини про Java — в одному місці. Приєднуйтесь до Java спільноти!

Задача: Есть программа написанная на Java (только *.jar, сурсов нету), необходимо принтануть все вызовы методов в программе.

Неверное решение:
1) Создать Aspect Project в eclipse.
2) Добавить jar программи к проекту.
3) Создать Aspect AppLauncher.aj:

import java.io.PrintStream;

import apppackage.AppMain;

public aspect AppLauncher {
    private static final PrintStream o = System.out;
    before() : execution(* *.*(..)) {
		try {
			o.println(thisJoinPoint.getSourceLocation());
		} catch (Exception e) {
		}
	}
	public static void main(String[] args) {
		AppMain.main(args);
	}
}

Неверный результат:
AppLauncher.aj:13 // принтануло только AppLauncher.main()

Вопрос: Как правильно принтануть все вызовы методов в программе?

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

под профайлером запуститься?

Может catch сработал? Попробовать заменить на execution(* *(..), хотя вроде это тоже, что и указано сейчас... А вообще код выглядит нормальным,

www.eclipse.org/.../JoinPoint.html

Підписатись на коментарі