سؤال

هل من الممكن الحصول على موضوع تفريغ جافا ويب ستارت التطبيق ؟ وإذا كان الأمر كذلك ، كيف ؟

سيكون لطيفا إذا كانت هناك حل بسيط ، مما سيمكن غير المطور (العملاء) إلى إنشاء موضوع تفريغ.بدلا من ذلك, هل من الممكن إنشاء موضوع تفريغ برمجيا ؟

في جافا ويب ستارت وحدة يمكنني الحصول على قائمة من المواضيع عن طريق الضغط على 't' ولكن stacktraces ليست مدرجة.

إذا إجابات تتطلب بعض إصدارات جافا ، يرجى يقول ذلك.

هل كانت مفيدة؟

المحلول

في وحدة التحكم ، اضغط V بدلا من T:

t:   dump thread list
v:   dump thread stack

هذا يعمل تحت JDK6.لا أعرف عن الآخرين.

البديل, تحت JDK5 (وربما قبل ذلك) يمكنك إرسال كامل تتبع المكدس جميع المواضيع القياسية من:

تحت Windows: نوع ctrl-كسر في Java console.

تحت Unix: kill -3 <java_process_id> (مثلا ، قتل -3 5555).هذا سوف لا تقتل التطبيق الخاص بك.

شيء آخر:كما يقول آخرون ، يمكنك الحصول على أكوام برمجيا عن طريق Thread الدرجة ولكن احترس من Thread.getAllStackTraces() قبل JDK6 كما أن هناك مشكلة حدوث تسرب للذاكرة.

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6434648

التحيات ،

سكوتي

نصائح أخرى

الأخيرة JDKs (للأسف لا JREs) تشمل أدوات مثل jstack الذي يفعل مثل هذه الأشياء.JVMs من الإصدار 5 تشمل JMX امتداد للحصول على موضوع تفريغ الذاكرة الإحصاءات ، و أكثر من ذلك بكثير.جميع تطبيقات جافا ، بما في ذلك تطبيقات ويب أخرى ، هذه الوظيفة المتاحة.

سوف تحتاج إلى تثبيت JDK أو كتابة JMX العميل أن يفعل الشيء نفسه.نلقي نظرة على http://java.sun.com/javase/6/docs/technotes/guides/management/ للحصول على مزيد من المعلومات.

منذ 1.5 يمكنك استخدام Thread.getAllStackTraces() للحصول على Map تكرار عبر.

فإن الناتج المثالي يمكن أن تنتج من Ctrl-\ (أو Ctrl-كسر أو ما شابه ذلك), ولكن لا يبدو أن تكون موثقة طريقة إنتاج هذا.إذا كنت على استعداد تحد نفسك إلى الشمس JVM (أو استخدام انعكاس اعتقد) هل يمكن أن يكون حفر حول sun.* حزم وانظر إذا كان أي شيء للاهتمام يظهر.

محاولة

StackTraceElement[] stack = Thread.currentThread().getStackTrace();

ثم يمكنك تكرار عبر مجموعة لإظهار أعلى x كومة عناصر كنت مهتما في.

منذ جافا 5 لديك getStackTrace() طريقة الخيط الدرجة.عن الإصدارات السابقة يمكنك القيام به:

Thread.currentThread().dumpStack();

وهذا طباعة تتبع المكدس إلى النظام.بها

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top