Eclipse - 디버거가 중단점에서 멈추지 않음
나는 JUnit를 찍으려고 애쓰고 있다.소스코드에서는 1)정적 부재가 초기화되는 라인 2)테스트 케이스 중 하나의 첫 번째 라인의 두 곳에 브레이크 포인트를 설정했습니다.
디버거가 정적 필드 초기화 행에서 중지됩니다.하지만 그것은 테스트 케이스에서 멈추지 않습니다.테스트 케이스의 어디에 브레이크 포인트를 설정해도 디버거는 거기서 멈추지 않습니다.추가한 로그 메시지가 로그에 표시되므로 테스트 케이스가 실행되었음을 확실히 알 수 있습니다.
어떤 도움이라도 주시면 감사하겠습니다.
이클립스 갈릴레오와 JUnit4 런처를 사용하고 있습니다.
수정은 모든 중단점을 클릭하는 것만으로 간단할 수 있습니다.나한테는 통했어
상황에 따라 [Run]> [ Debug Configurations ]에서 [Stop in main]가 선택되어 있는 것을 확인합니다.
이는 JDK 6 업데이트 15 릴리스 노트에 나타나 있듯이 JDK 6 업데이트 14의 오류 중 하나와 관련이 있을 수 있습니다.
이것이 실제로 문제가 될 경우 상위 버전의 JDK로 이행해야 합니다(6u16, 6u18 및 7b1에 대한 수정이 릴리스되었기 때문에 보증은 없습니다).-XX를 사용하는 것이 가장 좋습니다.+ParallelGC 플래그를 사용합니다.최소 및 최대 힙사이즈 크기를 늘리면 첫 번째 GC가 지연됩니다.
덧붙여서, 이클립스의 버그 리포트를 사용하여 다른 사람들이 어떻게 지내는지 추적해 보세요.
실수로 이클립스 도구 모음의 모든 중단점을 건너뛰었을 수 있습니다.이 문제를 해결하려면 Eclipse -> Run -> Skip All Breakpoints로 이동합니다.
통상, 이러한 일이 나에게 일어났을 경우(거의 발생하지 않지만), 실행중의 코드가 에디터의 코드와 다르다는 것을 의미합니다.Eclipse의 경우 빌드된 클래스와 에디터의 코드가 동기화되지 않는 경우가 종종 발생합니다.이 경우, 모든 종류의 이상한 디버거 동작(빈 행 디버깅, 코드 행 건너뛰기 등)이 발생합니다.
Eclipse를 재시작하여 모든 프로젝트를 정리하고 모든 것을 재구축하면 일반적으로 모든 것이 해결됩니다.Maven 플러그인(구 버전...)도 가지고 있었습니다.그런 경향이 있는 것 같습니다.
그렇지 않으면 버그일 수도 있어요 비넷이 말한 것처럼요
도움이 되었으면 좋겠다
프로젝트 -> JRE 8에서는 Clean이 효과가 있는 것 같았습니다.
내 경우 디버깅 뷰가 디버깅 관점에서 열리지 않은 것이 문제였습니다.그래서 다음과 같이 됩니다.
1 - debug perspect가 열려 있는지 확인합니다.
2 - 디버깅 뷰가 열려 있는지 확인합니다.
리모트로 디버거를 동작시키려면 Java .class 파일과 디버깅 정보를 함께 준수해야 합니다."-g:none" 옵션이 컴파일러에 전달된 경우 클래스 파일에 필요한 정보가 없으므로 디버거는 소스 코드의 중단점을 원격의 해당 클래스와 일치시킬 수 없습니다.한편, jars/class 파일이 난독화 되어 있는 경우는, 디버깅 정보도 표시되지 않습니다.당신의 답변에 따르면, 이것은 당신의 경우가 아닐 수도 있지만, 이 정보는 같은 문제에 직면한 다른 사람들에게 유용할 수 있습니다.
모든 중단점을 제거하고 다시 추가합니다.
JDK7의 run-> debug configurations의 경우 "Keep JUnit run after test run when debug" (디버깅 시 테스트 실행 후 JUnit 실행 유지)를 선택합니다.
"Run" (실행) > "Build automatically"(자동으로 빌드) 체크박스를 끄고 다시 체크하는 것을 잊은 적이 있습니다.
패키지는 반드시 상단에 신고해 주세요.내 그루비 코드에서는 이것이 브레이크 포인트에서 멈춥니다.
package Pkg1
import java.awt.event.ItemEvent;
isMule = false
class LineItem {
// Structure defining individual DB rows
public String ACCOUNT_CODE
public String ACCOUNT_DESC
...
이것은 중단점에서 끝나지 않습니다.
import java.awt.event.ItemEvent;
isMule = false
class LineItem {
// Structure defining individual DB rows
public String ACCOUNT_CODE
public String ACCOUNT_DESC
...
중단점을 삭제하려면:
- junit 테스트로 클래스 디버깅
- 디버거가 중지되면 "변수"와 "식" 옆에 있는 "중단점" 탭을 클릭합니다.
- 중단점 탭의 오른쪽 상단에 있는 두 개의 'X'가 있는 버튼을 클릭합니다.
- 테스트를 중지하고 중단점을 교체한 후 디버거를 다시 실행하십시오.
또, 다른 회선의 중단점이 기능하는지도 확인합니다.디버거의 버그일 가능성이 있습니다.이클립스 디버거에서는 다음 줄에 코드가 있는 부울 할당에 브레이크포인트를 넣는 것이 동작하지 않는 문제가 있었습니다.여기서 보고했지만 앞줄이나 다음 줄에 코드를 넣는 것은 동작했습니다.
아무 것도 안 되면...
- 원격/로컬 디버깅 설정을 삭제하고 새 설정을 만듭니다.
- 디버깅 설정에서 소스를 추가합니다.
다른 생각할 수 있는 문제는 디버거 포트가 방화벽에 의해 차단될 수 있다는 것입니다.예를 들어 mull anypoint studio(v 5.4.3)를 사용하고 있었습니다.기본 디버거 포트는 6666입니다.플로우가 실행되면 중단점에서 정지하지 않습니다.포토를 다른 포토(8099 등)로 변경했을 때, 정상적으로 동작했습니다.
에 가다Right click->Debug Configuration
디버깅 인스턴스가 너무 많이 생성되지 않았는지 확인합니다.설정에서 여러 디버깅인스턴스를 삭제하고 새로 디버깅을 시작했더니 문제가 해결되었습니다.
만약 당신이 이클립스에 있다면
패키지 탐색기에서 프로젝트 폴더를 마우스 오른쪽 버튼으로 클릭합니다.
Goto Source -> 청소하고 프로젝트를 선택합니다.
이렇게 하면 모든 문제가 해결되고 중단점이 지금 작동합니다.
저는 새로운 작업 공간을 만드는 것이 효과가 있었습니다.
제 경우, 같은 작업 공간에서 여러 프로젝트를 수행했습니다.디버깅하려고 했던 Java 파일이 동일한 패키지의 여러 프로젝트에 있습니다.
다른 프로젝트는 필요 없기 때문에 관련 없는 프로젝트를 닫거나 관련 없는 프로젝트에서 파일을 삭제하기만 하면 됩니다.
Vineet 레이놀즈의 답변에 대한 추가 코멘트입니다.
난 깨달았어, 내가 그 일을-XX:+UseParallelGC
에eclipse.ini
다음과 같이 가상 머신(vm) 인수를 설정합니다.
-vmargs
-Dosgi.requiredJavaVersion=1.7
-Xms512m
-Xmx1024m
-XX:+UseParallelGC
-XX:PermSize=256M
-XX:MaxPermSize=512M
문제가 해결되었습니다.
프로젝트가 여러 개 있을 때 프로젝트 A에서 프로젝트 B의 스프링 부트 구성을 생성(Duplicate를 클릭하여 프로젝트 B의 구성을 설정하도록 파라미터를 변경)한 것을 깨달았습니다.이 경우 디버깅 모드가 없기 때문에 이 설정을 삭제하고 New in Spring Boot Ap을 클릭하여 직접 새로 만들었습니다.p
이것은 나에게 효과가 있습니다.
PHP 서버 구성에 다음과 같이 로컬 서버 주소를 입력해야 했습니다.
주의: 이 주소는 Apache .conf 파일에서 설정한 주소입니다.
참고: 작동 중인 유일한 중단점은 '첫 번째 줄의 중단점'이었고, 그 이후에는 중단점이 작동하지 않았습니다.
주의: php.ini 파일에서 xdebug 속성을 확인하고 필요하지 않다고 생각되는 속성을 삭제합니다.
언급URL : https://stackoverflow.com/questions/1370868/eclipse-debugger-doesnt-stop-at-breakpoint
'programing' 카테고리의 다른 글
JavaScript에서 파일을 base64로 변환하는 방법 (0) | 2023.01.02 |
---|---|
JSON 파일을 예쁘게 인쇄하는 방법 (0) | 2023.01.02 |
PHP 연결 실패: SQLSTATE[HY000] [2002] 접속 거부 (0) | 2023.01.02 |
vue 전원이 켜진 Chrome 확장 내에서 npm을 사용하여 부트스트랩 및 종속성을 로드하는 방법 (0) | 2023.01.02 |
"assert" 키워드의 역할은 무엇입니까? (0) | 2023.01.02 |