와:
Object method(){
...
return /* some complex expression */
}
디버깅하는 동안 어떤 값이 반환되는지 확인할 수있는 방법이 있습니까? 어떻게 든 반환 직후에 발생하지만 실행 코드가 호출 코드로 이동하기 전에 중단 점을 설정합니까? 반환 값이 무엇인지 알 수 있고 모든 지역 변수의 값을 확인할 수 있기를 원합니다.
내가 지금하는 방법은 임시 변수를 만드는 것 Object ret = /* something complex */; return ret;
입니다. 그러나 그것은 번거롭고 불필요한 불필요한 코드 줄을 추가합니다.
참고 : 이것은 Visual Studio에서 디버깅하는 동안 반환하기 전에 반환 값을 찾을 수 있지만 intellij 와 동일한 질문 입니다.
답변
이 작업을 수행 할 수있는 몇 가지 방법이 있습니다. 첫 번째는 메소드 서명에 중단 점을 설정하는 것입니다.이 경우 Object method () {에 중단 점을 설정합니다. 이를 통해 분석법의 시작 및 종료를 관찰 할 수 있습니다. 위에서 설명한 것처럼 ” Watch method return values” 와 함께 이것을 사용해야한다고 생각 하지만 계산하는 데 너무 오래 걸리므로 완전히 테스트 할 수 없었습니다. 이는 디버거의 성능을 크게 저하 시키므로 디버깅하는 데 시간이 더 오래 걸립니다.
또한 다음을 수동으로 수행 할 수 있습니다.
- 리턴 라인에 중단 점을 설정하십시오.
- 리턴 라인에 도달하면 리턴 라인을 클릭하십시오. 특히보고자하는 조작에 커서를 놓고 Run-> Evaluate Expression (또는 Alt-F8)으로 이동하면 해당 시점에서 표현식을 실행해야합니다. 돌아 오는 것을 돌려줍니다.
참고 : 중단 점을 작성하는 경우 중단 점을 중단 한 경우 표현식을 수행하고 기록하도록 IDEA에 IDEA와 관련하여 할 수있는 작업이 많이 있습니다. 중단 점을 마우스 오른쪽 단추로 클릭하고 특성을 클릭하면 수행 할 수있는 작업을 살펴볼 수 있습니다.
업데이트 : 첫 번째 방법과 함께 시도하십시오. 디버깅 세션을 느리게하거나 정지시키는 것처럼 보이는 “Watch method return values”를 사용하지 마십시오. 대신 다음을 수행하십시오
- 보고자하는 리턴 표현식을 마우스 오른쪽 단추로 클릭하고 “시계에 추가”를 클릭하십시오.
- 그런 다음 위에서 언급 한대로 메소드 중단 점을 추가하십시오.
- 프로그램을 디버깅하면 메소드가 메소드 서명을 위반합니다.
- 계속 다시 깨지면에 대한 F9 키를 히트 후에 반환 식을 계산되었으며 수익식이 시계 컬럼에 있어야합니다.
메소드 중단 점은 느리므로 시간이 더 걸릴 수 있음을 기억하십시오. 성능 적중을 너무 많이 인식하는 경우이를 개선하는 까다로운 방법은 메소드 중단 점없이 리턴 문 중단 점을 설정 한 후 메소드 중단 점을 추가하는 것입니다. 후에 return 문 브레이크 포인트 안타 후 계속.
도움이 되었기를 바랍니다,
답변
IntelliJ IDEA 2016.3 : 디버그 패널의 톱니 바퀴 버튼 안에 숨겨져 있습니다. 확인 Show Method Return Values
한다 확인 .
반환 값을 보려는 함수 내부를 디버거를 사용하여 중단 하십시오.
기능에서 나가 십시오 (또는 탈출 할 때까지 넘어가십시오 ).
반환 값이 변수에 나타나는지 확인하십시오.
답변
디버거 패널 에는 Watch 메소드 반환 값 버튼이 있습니다 .
감시 방법 반환 값 :이 버튼을 클릭하면 마지막으로 실행 된 방법의 반환 값을 볼 수 있습니다.
IDEA 12 구성 :
답변
이것은 얼마 전에 요청되었지만이 상황을 처리하고 싶을 때 다른 방법을 사용합니다.
디버깅 할 때 표현식 (여기서는 “return”바로 뒤에있는 표현식)을 표시하고 CTRL + ALT + F8 (Quick Evaluate Expression)을 누르십시오. IntelliJ가 반환되는 값을 보여주는 작은 창을 표시합니다.