Если вы хотите рассуждать об исходном коде после того, как аспекты были вплетены в код, вы должны вплетать аспекты в исходный код, а не в двоичный код.
Многие сторонники ткачества выполняют переплетение двоичного кода, потому что у них нет доступа к информации (таблица символов, имена, типы, типы выражений и т. Д.), Создаваемой интерфейсом компилятора. Итак, хак в том, что используйте код виртуальной машины, созданный компилятором (этот трюк в основном работает только для наборов команд VM, таких как .net IL и коды классов Java), который часто легко декодировать (хороший, обычный набор команд), украшенный информация таблицы символов.
Но если вы не можете рассуждать о бинарных результатах такого процесса ткачества, то вы не можете быть уверены, что тканая программа не глючит, что является точкой оригинального вопроса ОП: «Как я могу запустить инструменты SCA на (эффективном) тканом источнике? ".
Вы можете исправить это двумя способами:
- Заставьте сообщество писать инструменты SCA, которые обрабатывают байт-коды, а не исходный код. Это может быть сложно, поскольку исходный код может содержать информацию, потерянную в процессе компиляции.
- Лучшая идея: Заставить сообщество аспектистов писать сценаристы аспектов, которые работают с исходным кодом, и создавать исходный код. Это может быть сложно, потому что получить полный языковой интерфейс сложно.
Я не могу помочь вам сделать выбор сообщества.
Я могу оказать сильную поддержку, чтобы помочь сообществу выбрать второй путь: наш DMS Software Reengineering Toolkit . Это система преобразования программ, которая выполняет директивы в виде «если вы видите this , замените его на that », но соблюдая синтаксис и семантику языка, фактически применение таких изменений к структурам данных компилятора, созданным полноязычными интерфейсами. ( Это версия программного обеспечения эквационального замещения в математике ). Измененные структуры данных могут быть реэкспортированы как скомпилированный исходный текст с комментариями.
Если вы понимаете, что преобразования могут вообще делать, вы увидите, что сторонники ткачества являются частным случаем систем преобразования программ . Так легко
реализовать ткачих аспектов с использованием DMS, и результаты исходный код, что означает
Вы можете применять инструменты анализа исходного кода.
Я сомневаюсь, что это на самом деле решает проблему OP-анализа кода, сгенерированного Roo, в краткосрочной перспективе: - {