2012-04-27 4 views
14

몇 가지 요청을 처리 한 후 일식이 processWorkerExit() 메소드를 중단하기 시작했습니다.Eclipse가 processWorkerExit에서 깨집니다.

이 부분은 link 이클립스의 깨는 방법을 알고 있지만이 줄에서 코드가 깨지는 이유가 있습니다. 이런 경우 메모리 누수가 발생할 수 있습니까?

톰캣 7.0.27
이클립스 3.7.2
있기 때문에 JDK는 7.0.02

enter image description here

답변

1

디버거가 라인 정지 된 이유는 예외 코드에 의해 발생되는 try{} 블록 내에 있으며 예외가 throw 된 후 특정 코드 줄이 다음 실행 코드 줄입니다. 기본적으로 Thread.run()까지 버블 링되는 캐치되지 않는 예외는 stderr으로 전송되기 때문에 콘솔 창에서 해당 예외의 스택 추적을 볼 수 있습니다.

메모리 누수가있을 수 있는지 (또는 Java, 리소스 유출 가능성이 있는지)에 대한 질문은 대답이 예입니다. 일 수 있습니다. 그러나 해당 코드에는 임을 나타내는 것은 없습니다. 이러한 누수가있는 경우 task 구현 내부에 잘못된 예외 처리가 있기 때문에 거의 확실하게됩니다.

0

동일한 문제가있었습니다. 예외를 기록하지 않으면 try/catch 절에서 중단됩니다. 이 같은 로그 캣에 중단 점 또는 출력을 삽입하십시오 :

try 
{ 
    //HERE I'VE PUT ALL THE FUNCTIONS THAT WORK FOR ME 
    Log.e("tag", "Sth passed!"); 
} 
catch (Exception e) 
{ 
    //The task failed 
    Log.e("tag", e.getMessage());   
} 

당신이 위의 코드처럼 넣어 try/catch 블록이없는 경우. LogCat에서 예외 이전에 실행 된 코드의 마지막 줄을 보면 다음과 같이 코드에서 오류를 찾을 수 있습니다.

08-28 05 : 49 : 52.321 : E/SQLiteDatabase (834) : java.lang.Thread.run (Thread.java:841)에서

9

대답은 여기에 있습니다 : 기본적으로 이클립스 OpenJDK breaks on processWorkerExit with no breakpoint

디버그 모드, 캐치되지 않는 예외에 휴식이 확인 입니다. 여기에 catch 메소드가 없으므로 캐치되지 않는 예외가 발생하고 디버거가 예외가 throw되기 바로 전에 에 대해 위반하는 것일 수 있습니다. Java-> Debug 아래의 환경 설정에서 해제 할 수 있습니다.

관련 문제