2014-12-08 3 views
0

디버깅 코드 및 JVM 코드 내부를 추적 할 때 변수를 볼 수없는 경우가 종종 있습니다.JVM 소스에서 알려지지 않은 변수 이름을 처리하는 방법은 무엇입니까?

분명히 이것은 변수 이름이 컴파일 된 코드에서 지워졌기 때문입니다.

어떻게해야합니까? 어딘가에 JVM의 디버그 버전이 있습니까?

다음 스크린 샷에서 마우스를 가져 가면 변수가 감시되지 않습니다. 유형 만 표시됩니다. 동시에 볼 수 있으며 변수는으로 식별되며 Eclipse의 변수보기에 표시됩니다.

enter image description here

+0

Eclipse의 하단에 표시되는 텍스트 영역에'Window -> Show View -> Display'를 입력하고'System.out.println (getLastPathComponent()); '을 입력하십시오. 그런 다음 * "Execute Selected Text"* (왼쪽에서 세 번째) 버튼을 눌러 값이 무엇인지 확인하십시오. –

답변

0

이것은 JTree.class 의미가 디버그 정보없이 컴파일됩니다. 디버그 정보로 다시 컴파일하면됩니다. 이를 위해서는 JTree 소스를 복사하여 JTree.java 파일에 붙여 넣으십시오.
cmd를 열고 다음을 입력하십시오.

javac -g JTree.java 

이렇게하면 많은 .class 파일이 생성됩니다. 모든 파일을 rt.jar에 다시 복사하십시오.
rt.jar을 수정할 때 다른 프로세스에서 사용 중이므로 잠시 닫고 다시 시도하십시오.
이제이 JTree 클래스를 원하는대로 디버깅 할 수 있어야합니다.

+0

아니면 이클립스이기 때문에 java 런타임 jar을 찾아 소스를 첨부 할 수있다. –

+0

그는 소스를 가지고 있습니다. 문제는 .class 파일의 디버그 기호가 없습니다. – outdev

+0

실제로 저는 그가 그녀라고 생각합니다. 그리고 그녀는 jdk를 사용하고 있습니다. 그렇지 않으면 그녀는 소스가 없을 것입니다. – outdev

관련 문제