[java] Eclipse-디버거가 중단 점에서 중지되지 않음

JUnit 문제를 해결하려고합니다. 소스 코드에서는 1) 정적 멤버가 초기화되는 행 2) 테스트 케이스 중 하나의 첫 번째 행의 두 위치에 중단 점을 설정했습니다.

디버거는 정적 필드 초기화 라인에서 중지됩니다. 그러나 그것은 테스트 케이스에서 멈추지 않습니다. 테스트 케이스에서 중단 점을 어디에 설정하더라도 디버거는 거기서 멈추지 않습니다. 내가 추가 한 로그 메시지가 로그에 나타나는 것을 볼 수 있으므로 테스트 케이스가 실행되었는지 확인합니다.

어떤 도움이라도 대단히 감사하겠습니다.

Eclipse Galileo 및 JUnit4 런처를 사용하고 있습니다.



답변

이는 JDK 6 업데이트 15의 릴리스 노트에 표시된대로 JDK 6 업데이트 14 의 버그 중 하나와 관련이있을 수 있습니다 .

이것이 실제로 문제로 판명되면 더 높은 버전의 JDK로 이동해야합니다 ( 6u16, 6u18 및 7b1에 대한 수정 사항이 릴리스되었으므로 보장되지는 않습니다 ). 가장 좋은 방법은 -XX : + UseParallelGC 플래그를 사용하는 것입니다. 첫 번째 GC를 지연시키기 위해 최소 및 최대 힙 크기의 크기를 늘리면 일시적으로 완화됩니다.

그건 그렇고, Eclipse에서이 버그 보고서를 사용 하여 다른 사람들이 어떻게 지 냈는지 추적하십시오.


답변

수정은 모든 중단 점 실행 / 건너 뛰기를 클릭하는 것만 큼 간단 할 수 있습니다. 나를 위해 일했습니다.


답변

상황에 따라 실행> 디버그 구성에서 ‘기본에서 중지’가 선택되어 있는지 확인합니다.


답변

일반적으로 이런 일이 발생하면 (드물지만 그렇습니다) 실행되는 코드가 편집기의 코드와 다르다는 것을 의미합니다. Eclipse의 경우 빌드 클래스와 편집기의 코드가 동기화되지 않는 경우가 있습니다. 그런 일이 발생하면 모든 종류의 이상한 디버거 동작 (빈 줄 디버깅, 코드 줄 건너 뛰기 등)이 발생합니다.

Eclipse를 다시 시작하고 모든 프로젝트를 정리하고 모든 것을 다시 빌드하면 일반적으로 문제가 해결됩니다. 나는 또한 그렇게하는 경향이있는 Maven 플러그인 (이전 버전 … 당분간은 없었습니다)도있었습니다.

그렇지 않으면 버그 일 수도 있고 Vineet이 말한 것일 수도 있습니다.

도움이 되었기를 바랍니다


답변

Eclipse 도구 모음에서 실수로 모든 중단 점을 건너 뛰었을 수 있습니다. 이 문제를 해결하려면 Eclipse-> 실행-> 모든 중단 점 건너 뛰기로 이동하십시오.


답변

Project-> Clean은 JRE 8에서 나를 위해 작동하는 것처럼 보였습니다.


답변

디버거가 원격으로 작업하려면 자바 .class 파일이 디버깅 정보와 함께 준수되어야합니다. ” -g : none “옵션이 컴파일러에 전달 된 경우 클래스 파일에 필요한 정보가 없으므로 디버거는 원격에서 해당 클래스와 소스 코드의 중단 점을 일치시킬 수 없습니다. 한편, jars / class 파일이 난독 화 된 경우 디버그 정보도 포함되지 않습니다. 귀하의 답변에 따르면 이것은 귀하의 경우가 아닐 수 있지만이 정보는 동일한 문제에 직면 한 다른 사람들에게 유용 할 수 있습니다.