Реализовать другую страту для интерфейса отладчика Java - PullRequest
12 голосов
/ 06 августа 2010

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

1 Ответ

3 голосов
/ 17 сентября 2010

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

...