2012-02-09 2 views
1

rt.jar의 클래스에 중단 점을 넣을 수 있습니까? 나는 어떤 장소에서 중단 점을 넣어자바 런타임 라이브러리 (rt.jar)의 중단 점

최대한 빨리 뭔가를 디버깅하고 내가 java.sql.DriverManager의에서 중단 점을 넣어해야하지만, 일식 메시지

Unable to install breakpoint in java.sql.DriverManager due to missing line number attributes. Modify compiler options to generate line number attributes 

나에게 묻는이 평균을 하는가 그 자바 런타임 클래스는 디버깅을 위해 컴파일되지 않았습니까? 그렇다면 왜 그러한 일이 행해지겠습니까? 도와주세요!

Edit1 : 원격 디버깅을하고 있는데, 실제 웹 응용 프로그램은 리눅스 컴퓨터에서 Tomcat으로 실행 중이며 Windows 컴퓨터입니다. 어떤 rt.jar이 여기에 범인입니까? 내 컴퓨터에있는 것이거나 원격 컴퓨터에있는 것입니까? 그리고 rt.jar이 줄 번호와 다른 유용한 정보로 컴파일되지 않았을 가능성이 있습니까?

편집 2 :이 질문에 대한 답변은 다음과 같습니다. Locally declared variables can not be inspected 디버깅 기호를 사용하지 않고 컴파일하는 이유는 누구나 알 수 있습니까? 메타 데이터를 유지하기 위해 성능에 어떤 영향을 줍니까? 아니면 다른 것입니까?

+0

넷빈즈 7.1, JDK 1.6.30, WIN7, 과거 RT에서 DriverManager 클래스 – Dapeng

+1

에 대한 브레이크 포인트를 설정 문제가없는 환경에

이동 Classfiel 세대 체크 2 옵션 디버그 기호가있는 .jar는 java.net에서 다운로드 할 수 있습니다. 하지만 지금은 그 어떤 흔적도 찾을 수 없습니다. – Mersenne

답변

3

클래스가 디버그 스위치 (-g)로 컴파일되지 않은 경우 특정 행에 중단 점을 설정할 수 없습니다.

그러나 디버깅을 위해 클래스가 컴파일되지 않아도 메소드에 중단 점을 설정할 수 있습니다 (eclipse : 메소드를 정의하는 첫 번째 줄에 중단 점 설정).

로컬 변수에 액세스 할 수 없으며 코드를 단계별로 실행하는 행이 표시되지 않습니다. 이렇게하면 디버깅이 조금 더 어려워 지지만 특히 원본 소스 코드를 알고있는 경우 계속 진행중인 작업 (예 : 메소드 인수 값 확인)을 볼 수 있습니다.

그러나 rt.jar이 디버깅 정보로 컴파일되지 않았는지 궁금합니다.

0

즉석 설정입니다. 오류 메시지에 의해 명확 너무 2nd Option checked in Classfiel Generation

+0

예,하지만 제 질문은 ... rt.jar가 이러한 설정으로 컴파일되지 않았습니까? – Ashish

+1

오, 나는 너의 마지막 줄을 놓쳤다 ... 내 jdk 1.6.0에서 더하기 나는 언제나 rt.jar에서도 항상 디버깅 할 수있다. 많은 관심을 기울이지 않아서 미안해. 그것은 컴파일 된 taht wasy 인 특정 클래스로 귀결됩니다. –

+0

도 DriverManager에서 디버그 할 수 있습니까? 원격 디버깅 때문에이 문제가 발생합니까? – Ashish