2012-05-15 2 views
1

저는 Java에 익숙하지 않고 Eclipse에서 디버깅하는 법을 배우고 있습니다. 디버거가 처음으로 함수에 들어가는 데 실패하지만, 두 번째로 성공적으로 수행하는 이상한 오류가 발생합니다. 특히, 여기에 내 단계가 있습니다.Eclipse 디버거가 처음으로 들어오지 못하는 이유는 무엇입니까?

  1. 내가 원하는 기능에 도달 할 때까지 단계별 검토.
  2. 함수로 들어가십시오. 여기에 "소스를 찾을 수 없습니다."라는 오류가 발생했습니다.
  3. 단계 복귀. 디버거는 위의 이전 스택 프레임으로 성공적으로 되돌아갑니다.
  4. 기능을 다시 한 번 수행하십시오. 이상하게도 이번에는 일을 시작하십시오.

무엇이 잘못 될 수 있습니까? 원하는 기능을 검사하는 데 2 ​​단계의 단계가 필요합니다.

+0

내가 기억할 수없는 FUNC1 얻을 것이다,하지만 난 그게 일반적입니다 :) 내가 생각하는 빌드 경로 뭔가 말씀 드릴 수 있습니다 다음 '에 단계'에서

keyser

답변

1

줄에 두 개의 명령문이 있고 내부 명령문에 원본이없는 경우 (맨손의 뼈대 JRE) 발생할 수 있습니다. 이 라인

myObject.myMethod(someObject.toString()); 

첫 번째 스텝으로는 (자신의 방식으로 단계 것이다로 두번째 단계 (있는 어떤 소스 지원 될 수 없다) toString() 메서드 내부 객체에 단계 것 거기에 코드가있을 것이다).

이 문제를 해결하는 방법 (정규 Java 런타임 클래스에서 발생하는 경우)은 JRE가 아닌 프로젝트에 full JDK을 사용하고 올바른 코딩 방법을 따르고 내부 명령문을 변수로 이동하여 각 행 정확히 한 가지를 수행합니다 (옵티마이 저가이를 수행 할 때 성능 저하가 없어야합니다).

1

이 같은 라인이 F :가 타사 소스 또는 자바 SRC가 그리고 당신은 JRE를 사용하는 경우

func1(obj.func2()); 

obj.func2() 에 디버거 첫 번째 단계는,이 소스 코드를 놓치지 일식 수를 디버깅을 위해 소스를 첨부 할 수 없습니다 (maven! = 사용). 당신이 기압이 발생하는 이유

관련 문제