2016-06-29 2 views
1

소스에 Java가 아닌 파일 (예 : Groovy 파일)이있을 때 Stackdriver 디버그 인터페이스가 불평합니다.비 Java JVM 언어에 Stackdriver 디버그 사용

디버거가 정상적으로 작동하는 방식은 파일 이름과 줄 번호가 클래스 파일에 포함 된 sourcefile 및 linenumber 속성과 일치하므로 Java가 아닌 소스 파일에 대한 지원이 비활성화 된 이유가 확실하지 않습니다.

인터페이스를 "속여서"Java 파일이 아닌 다른 파일 (예 : 이름을 바꾸는 것)을 수락하는 사람이 있었거나 Google에서 지원을 추가 할 계획이 있는지에 대한 정보가 있습니까?

답변

2

이 제한은 스택 드라이버 디버거 Java 에이전트에 하드 코드되어 있습니다. https://github.com/GoogleCloudPlatform/cloud-debug-java/blob/master/src/agent/internals/src/main/java/com/google/devtools/cdbg/debuglets/java/ClassPathLookup.java#L186

제한 사항은 에이전트가 Java 용으로 작성된 것입니다. Java 조건과 표현식을 이해합니다 (다른 언어 표현식을 이해하지 못함). 비교적 적은 변경으로 다른 JVM 언어를 처리하도록 에이전트를 수정할 수 있습니다. 그러나 file : lines은 클래스 파일의 정보와 일치하며 대상 구문과 일치하도록 수정 된 표현식 구문 분석기입니다.

+0

Scal, Groovy, Clojure 등의 코드를 디버깅하기 위해 Java 조건과 표현식을 사용하는 것은 불행한 일입니다. 각 라인의 괜찮은 JVM 언어는 적절한 행 번호 속성을 가진 클래스를 뱉어냅니다. – thoutbeckers

+0

이렇게하면 플랫폼을 트릭 할 수 있는지 여부를 확인할 수있는 출발점이됩니다 (단지 "repo"브랜치에있는 클래스 속성과 파일의 이름을 바꿀 필요가 있습니다). Google이 어떤 언어에 대한 지원을 원하지 않는 이유를 알 수 있지만 인기있는 JVM 언어가 언젠가 제대로 작동하는지 테스트 할 수 있기를 바랍니다. – thoutbeckers

+0

실수로 https://github.com/GoogleCloudPlatform/cloud-debug-java/commit/aacb0d0348d6f6202e20908f5cac020fb30b6d2b가 https://github.com/GoogleCloudPlatform/cloud-debug-java/blob/master/src/에서 죽은 코드를 생성 한 것으로 보입니다. agent/internals/src/main/java/com/google/devtools/cdbg/debuglets/java/ClassPathLookup.java # L191 – thoutbeckers

관련 문제