Подтвердить что ты не робот

Внедрение различной страты для интерфейса Java Debugger

В документации интерфейса Java Debugger для Класс местоположения приведен абзац, в котором обсуждается "страта" местоположения. Я немного оглянулся, чтобы узнать больше о том, как можно было бы реализовать новый слой (например, Scala или JRuby), но я не нашел многого. Может ли кто-нибудь пролить свет на эту тему?

4b9b3361

Ответ 1

Strata действительно не подходит для Scala или JRuby, поскольку они скомпилированы непосредственно в байт-коды, поэтому достаточно атрибутов SourceFile и LineNumberTable. Strata предназначены для таких вещей, как JSP, которые переводятся в исходный файл Java и скомпилированы. Страты определяются исходной картой (SMAP), хранящейся в атрибуте SourceDebugExtension. Детали того, как все это работает, являются частью JSR-45. Другим примером может быть State Machine Compiler, хотя я не думаю, что он генерирует SMAP. Я также не уверен, имеет ли javac возможность встраивания SMAP в файл класса. Тогда вам понадобится отдельный инструмент для этого.