2010-08-06 4 views
12

Location class에 대한 Java 디버거 인터페이스 설명서에는 해당 위치의 "계층"에 대해 설명하는 단락이 있습니다. 나는 새로운 스 라 텀 (예를 들어, Scala 또는 JRuby)을 구현하는 방법에 대해 좀 더 자세하게 살펴 보았지만 많이 찾지 못했습니다. 누군가 주제에 대해 밝힐 수 있습니까?자바 디버거 인터페이스에 대한 다른 계층 구현

+1

JSR-45 (다른 언어에 대한 디버깅 지원) 사양을 보았습니까? http://jcp.org/ko/jsr/detail?id=45 – kschneid

+0

나는 그렇지 않았습니다. 포인터 주셔서 감사합니다, 그건 꽤 도움이됩니다. – jfager

+0

클래스 파일에 소스 파일을 가리키는 특성이 있음을 막연하게 상기합니다. 다른 언어의 파일로 설정하려고 했습니까? – Ramon

답변

3

Strata는 Bytecode로 직접 컴파일되므로 Scala 또는 JRuby에 적합하지 않으므로 SourceFile 및 LineNumberTable 속성으로 충분합니다. Strata는 JSP와 같이 Java 소스 파일로 변환되고 컴파일되는 것들을위한 것입니다. 지층은 SourceDebugExtension 속성에 저장된 소스 맵 (SMAP)에 의해 정의됩니다. 이 모든 작동 방식에 대한 세부 정보는 JSR-45입니다. 또 다른 예는 State Machine Compiler이지만 SMAP을 생성한다고는 생각하지 않습니다. javac에 클래스 파일에 SMAP를 포함 할 수있는 옵션이 있는지 확실하지 않습니다. 그런 다음 별도의 도구가 필요합니다.

+0

사실, 줄 번호는 스칼라 코드의 바이트 코드 주소 -> 소스 위치 매핑에 대해 정확하지 않습니다. 주어진 스칼라 코드 행은 많은 의미있는 중단 점을 쉽게 얻을 수 있지만 현재 디버거는 그러한 행 내에서 소스 위치를 해석 할 수 없습니다. –

관련 문제