ASTParser порядок вызовов методов - PullRequest
0 голосов
/ 01 марта 2011

Я использую ASTParser для анализа исходного кода Java в проекте. Мне удалось получить имя и тип возвращаемого значения всех методов в различных классах моего Java-проекта. Теперь мне интересно, возможно ли иметь порядок вызовов методов при запуске проекта Java.

На самом деле я не прочитал всю документацию для этого класса, которая немного сложна. Вы знаете, обрабатывает ли он порядок доступа к методам в основной программе если это так, можете ли вы привести мне простой пример или дать рекомендации о том, что мне следует делать. Заранее спасибо

1 Ответ

0 голосов
/ 01 марта 2011

Это на самом деле чрезвычайно сложная проблема для решения.

Когда вы получаете AST для программы, вы получаете статическую информацию о структуре программы, а не динамическую информацию о реальном выполнении программы.,На самом деле, общая проблема «учитывая исходный код для этой программы, какую последовательность вызовов методов она сделает?» неразрешимо , что означает, что ни один алгоритм, независимо от того, насколько он умный, не всегда сможет правильно получить ответ на этот вопрос.Во-первых, вы можете попытаться аппроксимировать серию вызовов методов, заканчивая ответом, который дает вам что-то близкое к истинному ответу, но не правильно покрывает все случаи.Во-вторых, вы можете попробовать запустить программу и отслеживать, какие функции вызываются, написав своего рода плагин JVM, возможно, через JVMTI.

...