Programing

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

lottogame 2020. 9. 2. 20:23
반응형

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 파일이 난독 화 된 경우 디버그 정보도 포함되지 않습니다. 귀하의 답변에 따르면 이것은 귀하의 경우가 아닐 수 있지만이 정보는 동일한 문제에 직면 한 다른 사람들에게 유용 할 수 있습니다.


모든 중단 점을 제거하고 다시 추가하십시오.


JDK7의 경우 실행-> 디버그 구성에서 "디버깅시 테스트 실행 후 JUnit 실행 유지"를 선택하십시오.


한 번은 "실행> 자동 빌드"를 선택 취소하고 다시 확인하는 것을 잊었을 때 발생했습니다.


상단에 패키지를 신고했는지 확인하십시오. 내 그루비 코드에서 이것은 중단 점에서 중지됩니다.

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
...

제 경우 문제는 디버그 관점에서 디버그보기를 열지 않았기 때문에 다음과 같습니다.

1-디버그 퍼스펙티브가 열려 있는지 확인하십시오.

이클립스 디버거가 작동하지 않음 1

2-디버그보기가 열려 있는지 확인합니다.

eclipse debugger not working 2


중단 점을 제거하려면 다음을 수행하십시오 .

  1. 클래스를 junit 테스트로 디버그
  2. 디버거가 중지되면 "변수"및 "식"옆에있는 "중단 점"탭을 클릭합니다.
  3. 중단 점 탭의 오른쪽 상단에서 두 개의 'X'가있는 버튼을 클릭합니다.
  4. 테스트를 중지하고 중단 점을 교체 한 다음 디버거를 다시 실행하십시오.

Also verify if breakpoints on other lines DO work, it may be a bug in the debugger. I have had a problem with the Eclipse debugger where putting a breakpoint on a boolean assignment whose code was on the next line didn't work I reported this here, but putting it on the previous or next line did.


If nothing works-

  1. Remove that Remote/Local Debug Configuration, and Create a new One.
  2. Add the Source in Debug Configurations.

Another possible problem is that the debugger port may be blocked by the firewall. For example, I was using mule anypoint studio (v 5.4.3). The default debugger port is 6666. When a flow is executed, it would not stop at breakpoint. when I changed the port to another (e.g. 8099), it worked fine.


Go to Right click->Debug Configuration and check if too many debug instances are created. My issue was resolved when i deleted multiple debug instances from configuration and freshly started debugging.


If you are on Eclipse,

Right click on your project folder under "Package Explorer".

Goto Source -> Clean up and choose your project.

This will cleanup any mess and your break-point should work now.


Creating a new workspace worked for me.


In my case I had multiple projects in same workspace. The java file I was trying to debug was present in more than one projects with same package.

I didn't need the other project, so simply closed unrelated projects (or remove the file from unrelated project).


One additional comment regarding Vineet Reynolds answer.

I found out that I had to set -XX:+UseParallelGC in eclipse.ini

다음과 같이 가상 머신 (vm) 인수를 설정했습니다.

-vmargs
-Dosgi.requiredJavaVersion=1.7
-Xms512m
-Xmx1024m
-XX:+UseParallelGC
-XX:PermSize=256M
-XX:MaxPermSize=512M

문제를 해결했습니다.


이것이 나를 위해 작동하는 것입니다.

다음 과 같이 PHP 서버 구성 에 로컬 서버 주소를 입력해야 했습니다.

enter image description here

참고 : 해당 주소는 Apache .conf 파일 에서 구성한 주소 입니다.

참고 : 작동하는 유일한 중단 점은 '첫 번째 줄에서 중단'이었고 그 후에 중단 점이 작동하지 않았습니다.

참고 : php.ini 파일 에서 xdebug 속성을 확인 하고 필요하지 않다고 생각하는 항목을 제거하십시오.

참고 URL : https://stackoverflow.com/questions/1370868/eclipse-debugger-doesnt-stop-at-breakpoint

반응형