2013-09-24 6 views
4

분명히 교착 상태가 발생하는 응용 프로그램에서 버그를 수정해야합니다. 그러나 교착 상태가 실제로 발생하는 곳은 확실하지 않습니다. IntelliJ 디버거를 사용하여 응용 프로그램을 일시 중지 할 때 자신이 소유 한 모니터를 포함한 모든 스레드 목록을 얻을 수 있다면 매우 유용 할 것입니다. 예 :IntelliJ에 객체 모니터 표시

http://www.eclipsezone.com/eclipse/forums/t44632.html

답변

4

디버그 모드에서 응용 프로그램을 실행 이클립스와 함께 작업을 수행하는 방법에 대해 설명은 다음 문서 비슷합니다. 교착 상태가 발생할 때까지 기다렸다가 응용 프로그램을 일시 중지합니다. 마우스 오른쪽 버튼을 클릭 임의의 스레드 -Tab은 "글"로 이동에

screenshot with context menu of threads view

클릭 "내보내기 스레드 ...". 취득을 대기 스레드는 다음과 같이 표시됩니다

[email protected], prio=6, in group 'main', status: 'RUNNING' 
    blocks [email protected] 
[..] 
:

이 모니터를 소유하고 실행에서 다른 스레드를 방지
[email protected] daemon, prio=1, in group 'main', status: 'MONITOR' 
    waiting for [email protected] to release lock on <0x84c> (a my.Example) 
[..] 

스레드는 다음과 같이 표시됩니다