IT

이클립스에서 당신의 치료를 받으시나요?

lottoking 2020. 8. 22. 10:00
반응형

이클립스에서 당신의 치료를 받으시나요?


행이 된 후 명령 포인터가 호출 함수로 돌아 가기 전에 메소드의 반환 값을 볼 수 있습니까?

수정할 수없는 코드를 디버깅하고 있습니다 (읽기 : 타사 라이브러리를 다시 컴파일하지 않으) , 때로는 소스가없는 코드로 점프하거나 반환 표현식에 나를 방해하는 부작용이 있습니다 . 표시에서 사용할 수 있습니다.

사용되지 않은 값은 복합 명령문에서 사용되지 않은 변수 보기에는 값이 표시되지 않습니다.

업데이트 : 문에 부작용이 있기 때문에 식 뷰어를 사용할 수 없습니다.


이 기능은 Eclipse bug 40912 에서 Eclipse 버전 4.7 M2에 추가되었습니다 .

그것을 사용하십시오 :

  • return문을 건너 뛰어 사용합니다 ( "Step Over"또는 "Step Return").
  • 이제 변수보기의 첫 번째 줄에 "[statement xxx] returned :"와 같이 return 문의 결과가 표시됩니다.

자세한 내용은 Eclipse Project Oxygen (4.7) M2-New and Noteworthy 를 참조하십시오.


이것에 대한 정말 좋은 지름길을 찾았습니다. 값을 반환하는 저장을 선택하고

Ctrl + Shift + D

이 반품 문의 값을 표시합니다. 사용하지 않는 경우에는 매우 유용합니다.

도움이 되셨기를 바랍니다.

참고 : 라이브러리에서 의무적으로 작동합니다. 웹 개발자 용 Eclipse Java EE IDE에서 이를 테스트했습니다 . 버전 : Juno 서비스 릴리스 1


이것은 실제로 Eclipse의 오랜 버그이며 IDE의 첫 번째 날부터 거슬러 올라갑니다 : https://bugs.eclipse.org/bugs/show_bug.cgi?id=40912


이것이 제가 항상 다음과 같은 방법 패턴을 고수하는 이유입니다.

MyReturnedType foo() {
     MyReturnedType   result = null;

     // do your stuff, modify the result or not

     return result;
}

내 규칙 :

  1. 메소드의 끝에 만 반환 문이 하나만 있습니다 (다음에 마지막으로 허용됨).
  2. 항상 시작하여 반환 된 값을 보유하는 로컬 호출 결과가 있습니다.

당연히 가장 사소한 게터는 면제됩니다.


이 질문에 대한 답도 궁금합니다.

과거에는 이와 같은 클래스 라이브러리를 다룰 때 클래스에서 클래스를 생성하는 래퍼 클래스 또는 클래스를 만들고 래퍼 / 클래스에서 클래스를 수행했습니다. 그래도 추가 작업이 필요합니다.


"이제 메소드에서 리턴 할 때 메소드에서 변수보기에 이전에 호출의 리턴 값이 표시됩니다."[1]

[1] https://coffeeorientedprogramming.wordpress.com/2016/09/23/eclipse-see-return-value-during-debugging/


어려운 것. 내 경험, 이클립스의 외부, 당신은 반환 값을 참조해야하는 경우 반환 문이 간단하게 기능에서 지역 변수에 할당하는 return varname;것이 좋습니다 것입니다 하지 return(some * expression || other);. 끔찍한 언어라고 말할 수 있습니다. 그래서 나는 당신에게 좋은 대답을 가지고 있지 않습니다. 당신은 당신의 요구 사항을 아마도 재고해야 할 것입니다.


return 문에 따라 반환되는 메뉴를 강조 표시 할 수 있고 오른쪽 클릭 메뉴에서 "표현식 평가"와 같은 항목이 있어야합니다 (지금은 내 앞에 이클립스가 그런 식입니다.). 반환 될 내용이 표시됩니다.


이것은 약간의 어리석은 일이지만 간단한 방법은없는 것입니다.

AspectJ를 사용하여 관심있는 메소드의 반환 값을 확보하는 것으로 JAR을 계측 할 수 있습니다. 의 문서에 따르면 AspectJ의 프로그램은 이클립스 다른 프로그램처럼 디버깅 할 수 있습니다 .

라이브러리를 다시 설치하지 않고 클래스를 짜는 두 가지 옵션이 있습니다.

  • 바이너리 JAR 처리가 허용되는 경우 후 위빙;

  • VM에서 위빙 에이전트를 활성화해야하는로드 시간.

Eclipse 문서 (위 링크) 및 AspectJ 개발 환경 가이드를 참조하십시오 .

참고 URL : https://stackoverflow.com/questions/217116/can-i-find-out-the-return-value-before-returning-while-debugging-in-eclipse

반응형