2012-08-09 30 views
7

Belirli bir kesme noktasında olduğumda yığın izlemesi almanın bir yolunu arıyorum. Mümkün mü? İdeal olarak uygulamayı kilitlemek ve kodu değiştirmek zorunda kalmadan. Android hata ayıklayıcı ile oynamaya çalıştım ama çok yararlı bir şey bulamadım.İstif üzerine yığın izi yazdırmanın bir yolu var mı?

Bunun nedeni bazen uygulamanın koddaki bir noktaya nasıl geldiğinden emin değilim, bu nedenle yöntem çağrılarını izlememe yardımcı olacak diğer önerilere açığım.

cevap

12

Bu Java yapılabilir: Eğer Debug perspektif Expressions görünümde o kodla bir "ifadesi" oluşturursanız

Eclipse
new Throwable().printStackTrace(); 

, mevcut yığın izleme (yani StackTrace ait yazdırılır Console görünümünde kodunuzun durduğu kesme noktası).

+0

Teşekkürler, İfadeler görünümünden mi bahsediyorsunuz? Hangi kodu koymalıyım? Denedim, ancak konsol görünümünde veya LogCat'ta hiçbir şey görünmedi. – JohnEye

+0

"İfadeler" görünümünde, "Yeni ifade ekle" ye tıklayın ve sağladığım kodu yapıştırın ('new Throwable(). PrintStackTrace();'). Enter tuşuna bas. "Konsol" görünümüne geçin ve bir stacktrace görmelisiniz. Bu benim için sadece bir ana (String []) yöntemi ile basit Java uygulaması hata ayıklama, vanilla Eclipse Juno üzerinde çalışıyor. – npe

+0

Oh, tabiki, sadece yoğun olmaktaydım :-) Benim gönderdiğim kodun çalıştırılmasına izin vermek istedim. Çok teşekkürler, cazibe gibi çalışır. – JohnEye

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

kolay yolu hemen bir istisna yakalamak ve printStackTrace() kullanmaktır.

Ayrıca size printStackTrace() yaptığı metinsel gösterimi kazanmanın yanı sıra başka bir şey için istediğiniz durumda bir StackTraceElement[] veren Thread.currentThread().getStackTrace() deneyebilirsiniz.

+2

Atmak zorunda değilsiniz. Benim cevabımı gör ;-) – npe

+0

Çok doğru, her zaman unutuyorum: D – f1sh

İlgili konular