2011-03-01 15 views
12

मुझे जावा क्लाइंट एप्लिकेशन की क्रैश की जांच करने की आवश्यकता है। यह स्विंग एप्लिकेशन है, जावा पर जावा एसई 6 अपडेट 23 पर जावा वेब स्टार्ट वातावरण में चल रहा है। दुर्भाग्य से कुछ क्रैश मामलों के लिए hs_err_pid फ़ाइल नहीं बनाई गई थी। यह डेस्कटॉप पर नहीं था, इसलिए मैंने पीसी पर इसकी खोज की है और इसे नहीं मिला (उसी एप्लिकेशन के लिए डेस्कटॉप पर पुरानी hs_err_pid फ़ाइल थी, इसलिए यह मानना ​​उचित है कि नया एक बनाया जाना चाहिए था वहॉं भी)। अंत में लॉग में कोई अपवाद नहीं है, क्योंकि यह आमतौर पर होता है जब जावा अपवाद पर JVM क्रैश होता है, इसलिए यह एक क्रैश जैसा दिखता है जिसके परिणामस्वरूप hs_err_pid फ़ाइल का निर्माण होना चाहिए।क्रैश पर hs_err_pid फ़ाइल क्यों नहीं बनाई जा सकती है?

क्या मुझे इसे काम करने के लिए कुछ कॉन्फ़िगर करने की आवश्यकता है? क्या डॉ वाटसन की कॉन्फ़िगरेशन hs_err_pid फ़ाइल के निर्माण को प्रभावित कर सकती है?

धन्यवाद

हम डॉ 'वाटसन विन्यस्त और कोर डंप फ़ाइल, के बाद एप्लिकेशन फिर से दुर्घटनाग्रस्त हो बनाया गया था जो विश्लेषण किया। मैंने देखा त्रुटि "उल्लंघन का उल्लंघन" था। स्टैक ट्रेस से मैं यह देखने में सक्षम था कि क्रैश एक तीसरी पार्टी के मूल कोड में अपवाद के कारण होता है जिसका हम उपयोग करते हैं। यह मुद्दा उन्हें सौंपने के लिए पर्याप्त था।

नीचे पंक्ति:
1. कुछ जावा क्रैश को JVM द्वारा अपेक्षित के रूप में प्रबंधित नहीं किया जाता है ताकि hs_err_pid फ़ाइल नहीं बनाई जा सके।
2. कोर डंप बनाने के लिए ओएस को कॉन्फ़िगर करना उन मामलों में मदद कर सकता है, क्योंकि जेवीएम द्वारा नियंत्रित क्रैश ओएस द्वारा संभाला जाएगा। आपको इस मामले में कम जानकारी मिलेगी, फिर भी यह सहायक हो सकती है।

+0

जावा अपवाद पर JVM क्रैश - अपवाद क्या है, क्या आप यहां स्टैक ट्रेस पेस्ट कर सकते हैं या कोड। –

+1

@ सुरेश - वह * लॉग आउटपुट ढूंढने की कोशिश कर रहा है जो उसे दुर्घटना के अधिक विवरण देगा (अपवाद ट्रेस सहित, यदि कोई हो)। –

+0

यदि फ़ाइल को उस निर्देशिका तक पहुंच नहीं है, तो यह फ़ाइल को तब तक नहीं लिख पाएगा, जो इसे सामान्य रूप से लिखता है। –

उत्तर

3

JDK 5 http://java.sun.com/j2se/1.5/pdf/jdk50_ts_guide.pdf

When a fatal error occurs an error log is created in the file 

hs_err_pid.log (जहां प्रक्रिया की प्रक्रिया आईडी है)। संभव है कि फ़ाइल प्रक्रिया की कार्यशील निर्देशिका में बनाई गई हो। घटना है कि फ़ाइल कार्यशील निर्देशिका (पर्याप्त स्थान, अनुमति समस्या, या अन्य मुद्दा) तो फ़ाइल ऑपरेटिंग सिस्टम के लिए अस्थायी निर्देशिका में बन जाता है में नहीं बनाया जा सकता है में। Solaris पर और लिनक्स अस्थायी निर्देशिका /tmp है। विंडोज़ पर अस्थायी निर्देशिका के मान द्वारा निर्दिष्ट है TMP पर्यावरण चर, या जो परिभाषित नहीं है, TEMP पर्यावरण चर का मान।

+0

उपयोगकर्ता के डेस्कटॉप पर हमारे एप्लिकेशन के लिए पहले से ही पुरानी hs_err_pid फ़ाइल है (जहां वह एप्लिकेशन का लिंक है, तो यह कार्यशील निर्देशिका है), इसलिए उपयोगकर्ता को निर्देशिका तक पहुंच है। ऐसा लगता है कि फ़ाइल कुछ विशिष्ट स्थितियों में नहीं बनाई गई है –

+0

@Leonid: ठीक है। यह धागा आपको http://boardreader.com/thread/JVM_Crash_log_file_hs_err_pid_log_not_fo_vvqzX37n41.html –

6

ध्यान दें कि hs_err_pid.log फ़ाइलें केवल वास्तविक जेवीएम क्रैश होने पर ही बनाई जाती हैं।

यदि आपका एप्लिकेशन "केवल" कहीं भी एक अनचाहे अपवाद के कारण निकलता है, तो ऐसी कोई फ़ाइल नहीं बनाई जाएगी।

क्या आप वाकई एक वास्तविक JVM क्रैश था?

+0

लॉग इन करने के लिए सभी अनचाहे अपवाद मुद्रित किए जा सकते हैं। जब एप्लिकेशन अनचाहे अपवाद के साथ निकलता है, तो हम इसे लॉग फ़ाइल के अंत में देखते हैं, इस मामले में लॉग में कोई अपवाद नहीं है। –

7

यदि क्रैश मूल स्टैक ओवरफ़्लो के परिणामस्वरूप होता है (आमतौर पर एक एसआईजीएसईजीवी जिसके परिणामस्वरूप एप्लिकेशन स्टैक गार्ड पेज को पढ़ने/लिखने का प्रयास करता है), तो कई प्लेटफ़ॉर्म (उदाहरण के लिए, लिनक्स) पर कोई hs_err_pid फ़ाइल जेनरेट नहीं होती है यदि आप स्टैक स्पेस से बाहर हैं तो फ़ाइल को बनाने वाली प्रक्रिया पूरी नहीं हो सकती है।

+0

यह मूल ढेर ओवरफ्लो का मामला नहीं था। हमने डॉ 'वाटसन को कॉन्फ़िगर किया और कोर डंप फ़ाइल का विश्लेषण किया। मैंने देखा त्रुटि "उल्लंघन का उल्लंघन" था। –

+0

अच्छी तरह से पहुंच उल्लंघन और ढेर अतिप्रवाह पारस्परिक रूप से अनन्य नहीं हैं। क्या होता है जब एक स्टैक ओवरफ़्लो होता है ओएस, रनटाइम पर्यावरण, ओवरफ्लो कैसे होता है, आदि – BeeOnRope

+0

उदाहरण के लिए, लिनक्स पर आमतौर पर एक स्टैक ओवरफ़्लो (अक्सर?) एसआईजीएसईवी उत्पन्न करता है, जो कि विंडोज पर एक्सेस उल्लंघन के बराबर है। अन्य चीजें, जैसे कि खराब पॉइंटर एक्सेस, SIGSEV का कारण बन सकती है, लेकिन इन अन्य मामलों में JVM आमतौर पर hs_err_pid फ़ाइल बनाने में सक्षम होता है। – BeeOnRope

संबंधित मुद्दे

 संबंधित मुद्दे