2012-10-02 2 views
0

someones 코드를 디버깅 중이며 특정 작업을 수행 할 때 멈추지 만 Eclipse가 오류를 멈추지 않습니다 (실수로이 기능을 해제했을 수 있음). 디버거에서 pause를 누르면 이클립스는 일시 중지 된 스레드를 보여 주며 두 개는 빨간색으로 표시됩니다. 오류 anywere가 있는지 또는 어딘가에 무한 루프가있는 경우를 찾고 싶습니다 (이클립스는 루프에서 중단되어야하기 때문에 가능성이없는 것 같습니다). 누구든지 사전에 감사 할 수 있다면 좋을 것입니다!Eclipse 디버거가 멈추지 만 오류가 발생하지 않습니다.

+0

어떤 언어 너는 사용하고있어. 직접 쓰레드를 만드는 경우 –

+0

물론입니다. 나는 Java를 사용하고 있으며, 코드는 확실히 쓰레드를 사용한다. 문제는 크고 적절하게 조직화되지 않은 (문서화되지 않은) 프로젝트이기 때문에 코드가 어디에 쓰여 있는지 정확하게 찾아야합니다. (마지막으로 쓰레드가로드되는 것을 본 마지막 시간입니다. 라이브러리를 비동기 적으로). – Ruben

답변

1

아마도 교착 상태에 빠졌습니까?

jconsole (java jdk와 함께 사용)을 사용하여 확인할 수 있습니다. jconsole을 시작하고, 프로세스에 첨부하고, Threads 탭으로 이동하십시오. "Detect deadlock"을 누르십시오 ... 또한 모든 스레드 상태를 살펴 보는 것이 유용 할 수 있습니다. 예를 들어 하나의 스레드에서 무한 루프를, 다른 스레드에서 스레드를 차단할 수 있습니다.

+0

고마워요! 나는 지금 이것을 시도 할 것이다. (늦게 답장을해서 유감스럽게 생각했지만 코드에서 문제를 해결했지만 프로그램이 직접적으로 이유없이 얼어 버린 다른 버그에 대해 동일한 문제가 발생했습니다 – Ruben

+0

실제로 교착 상태가 발견되었습니다! 감사! – Ruben

0

필자는 전에 몇 줄의 코드 줄을 삽입 한 다음 중단 될 때까지 중단 점을 삽입하고 그 사이에 어떤 오류도없는 중단 점을 제거하려고했습니다. 충돌을 일으키는 코드 줄을 기억하고 수정하기 위해 필요한 모든 변경을하십시오.

+0

나는 대안이 없기 때문에 이것을 시도 할 것이지만 그것이 효과가 있을지는 의문이다. 작은 프로그램의 경우에는 분명히 하겠지만이 코드는 2 만 라인이 넘는 프로젝트입니다 ... 최악의 부분은 클래스와 콜 다이어그램이 엄청난 혼란을 겪고 있으며 특정 조건에서 버튼을 누르면 프로그램이 충돌한다는 것입니다. 단계를 쉽게 밟을 수는 없습니다. – Ruben

+1

그 코드는 잔뜩 있는데, 충돌이 발생하면로드가 발생하는 것처럼 충돌을 일으키는 이벤트를 시작하는 것이 좋습니다. –

+0

하하, 내가 왜 그렇게 생각하지 않았어? 감사! :) – Ruben

관련 문제