В документации интерфейса Java Debugger для Location class есть параграф, в котором обсуждается «страта» местоположения. Я немного оглянулся, чтобы узнать больше о том, как можно было бы реализовать новый слой (скажем, Scala или JRuby), но я не нашел многого. Может ли кто-нибудь пролить свет на эту тему?Внедрение различной страты для интерфейса Java Debugger
ответ
Strata не подходит для Scala или JRuby, поскольку они скомпилированы непосредственно в байт-коды, поэтому атрибутов SourceFile и LineNumberTable достаточно. Strata предназначены для таких вещей, как JSP, которые переводятся в исходный файл Java и скомпилированы. Страты определяются исходной картой (SMAP), хранящейся в атрибуте SourceDebugExtension. Детали того, как все это работает, являются частью JSR-45. Другим примером может быть State Machine Compiler, хотя я не верю, что он генерирует SMAP. Я также не уверен, имеет ли javac возможность встраивания SMAP в файл класса. Для этого вам понадобится отдельный инструмент.
На самом деле номера строк недостаточно точны для адреса байт-кода -> сопоставление исходных позиций для кода Scala. Данная строка кода Scala может легко дать много значимых точек останова, но текущие отладчики не могут решить свою исходную позицию в такой строке. –
- 1. Внедрение сопоставимого интерфейса Java?
- 2. Внедрение интерфейса Java
- 3. Внедрение интерфейса
- 4. Внедрение вложенного интерфейса подкласса
- 5. Внедрение интерфейса JS для плитки
- 6. Внедрение интерфейса из фреймворка vs простого интерфейса Java
- 7. Внедрение Flash-интерфейса в приложении Java
- 8. Внедрение интерфейса Java в классе Groovy
- 9. Внедрение пользовательского COM-интерфейса в Java
- 10. Внедрение интерфейса VIM Modality
- 11. Внедрение сервисного интерфейса Retrofit2
- 12. Внедрение COM-интерфейса IExtractImage
- 13. Внешнезависимое внедрение интерфейса для составного объекта в Java. (LWUIT)
- 14. Внедрение интерфейса WCF
- 15. Внедрение интерфейса плагина
- 16. Внедрение универсального интерфейса
- 17. Внедрение интерфейса в коде
- 18. Списки обобщений Внедрение интерфейса
- 19. Внедрение интерфейса компаратора
- 20. Внедрение интерфейса IDataErrorInfo
- 21. Внедрение интерфейса TypeScript
- 22. Внедрение responseHandler интерфейса
- 23. Внедрение интерфейса веб-интерфейса Apache Mesos
- 24. Внедрение интерфейса интерфейса без накладных расходов
- 25. Внедрение интерфейса для уровня доступа к данным
- 26. Внедрение интерфейса среды Spring для тестирования
- 27. Внедрение интерфейса, но изменение члена для частного
- 28. Scripting Eclipse Java Debugger?
- 29. Внедрение методов интерфейса Eclipse PDT
- 30. Внедрение API-интерфейса клиента REST
Вы просмотрели спецификацию для JSR-45 (отладка поддержки других языков)? http://jcp.org/en/jsr/detail?id=45 – kschneid
У меня не было, нет. Спасибо за указатель, который помогает совсем немного. – jfager
Я смутно помню, что в файле класса есть атрибут, указывающий на исходный файл - попробовали ли вы просто установить это на файл на другом языке? – Ramon