2012-09-28 1 views
1

스칼라 메서드의 닫는 }에 중단 점을 설정할 수 있지만 명백히 히트하지 않기 때문에 무의미합니다.최적화되지 않도록 보장되는 스칼라 노프는 없습니까?

아직 설정하고 싶습니다. 그래서 나는 생각했다. "그 전에는 아무 것도하지 말고 중단 점을 설정 하는게 어떨까요?"

하지만 코드가 없으므로 결코 중단되지 않는 중단 점을 설정하려고 시도 할 때 Eclipse가 경고를 표시하지 않으므로 아무 작업도하지 않은 경우 Eclipse에 의존 할 수 없습니다. (특히 스칼라의 동일한 버전의 스칼라를 사용하여 Eclipse 스칼라 플러그인이 사용하는 코드를 실행하지는 않는다). JIT에 의해 멀리 최적화되지 보장 -

그래서 모든 상황에, 스칼라 컴파일러에 의해 멀리 최적화되지 보장 입니다 내가 여기에 사용할 수있는 짧은 무 조작 문 또는 표현이 있습니다 중단 점이 충돌하는 것을 방지하는 방법? 이 메서드는 Unit이 아닌 유용한 값을 반환하기 때문에 내 경우에는 문이 아니라 표현식이어야합니다.

답변

1

정확히 아무 작업도 아니지만 로깅 구문 (또는 추적 표현식 (즉, 방금 로그 한 값을 반환하는 로깅 구문)은 최적화되지 않도록 보장됩니다.

유일한 문제점은 실제로 출력되는 내용을 보려면 브레이크 포인트에 도달 할 때마다 수동으로 디버그 문이나 단계를 추적해야한다는 것입니다. 변수의 값을 출력하지 않는 한,이 변수는 Eclipse의 변수 탭에서 찾을 수 있습니다.

그리고 "old style debugging mode"에서 Eclipse Scala 플러그인 2.1 milestone 2를 사용하여 추적 코드를 적어도 내 코드에서 실행하는 것은 작은 문제가 아닙니다. this issue로 인해 완전히 손상 되었기 때문입니다!

나는 무엇이 계속되고 있는지 깨닫기 전에 마침내 그걸 극복 할 수있게되기 전에 F20 과 F7 열쇠를 두드리는 약 20 번의 시도가 필요했습니다! 그리고 그걸 밟기위한 것이 었습니다 !

그리고 다음 줄은 }입니다. 다음 줄에 다른 중단 점을 설정하는 명백한 해결 방법은 작동하지 않습니다.

이론적으로는 추적 단계를 건너 뛰지 않고 Inspect the value being traced 일 수 있습니다. 불행히도, 그것은 저를 위해 작동하지 않습니다 - 그것은 클래스가 발견되지 않는다고 말합니다.