2012-01-18 4 views
1

디버깅하는 동안 스칼라 애플리케이션에 코드를 삽입하는 방법이 있습니까? 예를 들어, 나는 방법과 과제를 통해 범위 그때 검사하고 c, i와 상호 작용할 수있는이 같은,스칼라에서 디버깅하는 동안 대화 형으로 코드를 실행하십시오.

var c = 1.0 
0.until(10).foreach{ i => 
    if (i == 5) { 
     startDebuggingMagicHere() 
    } 
} 

및 기타 변수를 가질 수있다.

+0

이 답변을 살펴 보자 http://stackoverflow.com/a/2161749/576766 [임의의 스칼라 코드의 위치 동안 통역에 드롭]의 – tenshi

+0

가능한 중복 (http://stackoverflow.com/questions/를 2160355/drop-into-interpreter-arbitrary-scala-code-location) –

+0

다른 주제를 알고 있지만, 특히'sbt'를 사용하는 경우 스칼라 2.9에서는 작동하지 않습니다. – duckworthd

답변

3

Eclipse 용 Scala-IDE 플러그인에서 디버깅이 지원됩니다. 스칼라 코드에 중단 점을 설정하면 제한된 작업을 수행 할 수 있습니다. 현재의 지원은 Java의 지원만큼 좋지 않습니다. 나는 그것이 여름까지 향상시킬 계획이라고 믿는다.

당신이 할 수있는 것은 : 그것은을 시작하도록

  1. 는 "드롭 프레임에"디버거에게, 변수의 현재 값을 확인하고 값을 수정하려면 "변수"보기를 사용 현재 메서드를 다시 호출하여 스택의 원래 값을 사용하여
  2. 코드를 수정하고 디버거가 새 코드를 삽입하고 프레임에 드롭하는 파일을 저장합니다. 즉, 메서드 호출을 다시 시작합니다. 클래스 정의를 변경하는 경우와 같이 앱을 다시 시작해야하는 코드가 많이 변경됩니다.

은 당신이 할 수없는 것은 :

  1. 는 "디스플레이"보기
  2. 쓰기 코드 편집기에서 변수를 검사하고 실행합니다. 이 두 가지 모두 Java에서는 작동하지만 Scala에서는 작동하지 않습니다.
+0

저는 IntelliJ IDEA를 사용해 왔습니다. 이클립스의 지원이 충분하다면 마이그레이션해야할까요? – duckworthd

+0

IntelliJ 플러그인을 scala 용으로 모르지만 이클립스는 Typesafe의 지원을 받고 현재 개발 중입니다. 도움이된다면 ... –

관련 문제