2012-08-09 5 views
7

특정 중단 점에있을 때 스택 추적을 얻는 방법을 찾고 있습니다. 이것이 가능한가? 응용 프로그램을 중단하고 코드를 수정하지 않고 이상적입니다. 나는 안드로이드 디버거로 놀아 보았지만 아무런 도움이되지 않았다.요청시 스택 추적을 인쇄하는 방법이 있습니까?

이유는 응용 프로그램이 코드의 한 지점에 어떻게 도착했는지 확실하지 않기 때문에 메서드 호출을 추적하는 데 도움이되는 다른 제안이 열려 있습니다.

답변

12

이 자바에서 수행 할 수 있습니다 : 당신이 Debug 관점의 Expressions보기에 그 코드를 가진 "표현"을 만들 경우

이클립스에서
new Throwable().printStackTrace(); 

, 그것은 현재의 스택 트레이스 (즉, 스택 트레이스의 인쇄합니다 코드가 중단 된 중단 점)을 Console보기에 표시합니다.

+0

감사합니다. 표현식보기에서 의미합니까? 어떤 코드를 넣어야합니까? 하나는 중단 점이있는 줄에 있습니까? 시도했지만 콘솔보기 나 LogCat에 아무 것도 나타나지 않았습니다. – JohnEye

+0

"표현식"보기에서 "새 표현식 추가"를 클릭하고 제공된 코드 ('new Throwable(). printStackTrace();')를 붙여 넣으십시오. Enter를 누르십시오. "콘솔"보기로 전환하면 스택 추적을 볼 수 있습니다. 이것은'main (String [])'메소드로 간단한 자바 애플리케이션을 디버깅하는 vanilla Eclipse Juno에서 나에게 적합하다. – npe

+0

오, 물론, 나는 단지 밀도가 높았습니다 :-) 내가 게시 한 코드를 실행시키고 싶습니다. 고마워, 매력처럼 작동합니다. – JohnEye

4
Log.e("AppName", "Debug exception", new Exception()); 
2

가장 쉬운 방법은 바로, 예외를 발생을 잡아 printStackTrace()을 사용하는 것입니다.

또한 을 입력하면 StackTraceElement[]이 표시됩니다.이 경우 printStackTrace()이라는 텍스트 표현 외에 다른 것을 원할 수도 있습니다.

+2

당신은 그것을 던질 필요가 없습니다. 내 대답을 참조하십시오 ;-) – npe

+0

정말 사실, 난 항상 잊지 : D 조 – f1sh

관련 문제