2010-12-17 9 views
12

मुझे हाल ही में एक उपयोगकर्ता से शिकायत मिली है कि मेरा ऐप क्रैश हो रहा था। मैं उपयोगकर्ता की त्रुटि लॉग से निम्नलिखित निकाला जाता है और जहां हो रहा क्यों मुद्दों को देखने के लिए सक्षम था की है:"स्टैक भ्रष्टाचार का पता चला: क्रैश"

12-17 10:31:12.446 I/PLAYLIST(3158): PreparePlaylist 
12-17 10:31:12.446 I/PLAYLIST(3158): URL: http://f69cbd7a-3d91-4bf5-b4c6-ddb1175cf9e9.d40f2093-2013-4ad9-aec2-e99b015d61ca.070305e7-a706-4626-9ecb-777835065841.groovera.com/listen.pls 
12-17 10:31:12.456 F/unknown (3158): stack corruption detected: aborted 
12-17 10:31:12.466 D/Zygote (2204): Process 3158 terminated by signal (6) 
12-17 10:31:12.471 I/ActivityManager(2256): Process com.android.Player:remote (pid 3158) has died. 

ढेर भ्रष्टाचार का पता चला था। बढ़िया, तो मैं कैसे पता लगा सकता हूं कि यह क्यों हो रहा है?

मुझे लगता है कि इस विशेष वर्ग में समस्या हो रही है क्योंकि इससे पहले कि मैं मरने से पहले उससे अधिक लॉग आउटपुट की उम्मीद कर रहा था। यह वर्ग प्लेलिस्ट डाउनलोड करने और इसे पार्स करने के लिए सॉकेट का उपयोग करता है। मैं ढेर को दूषित कैसे कर सकता हूं? मैंने सी/सी ++ में स्टैक ओवरफ्लो के साथ निपटाया है, लेकिन मैं इसे जावा में कैसे संभाल सकता हूं?

आपकी मदद के लिए धन्यवाद!

+0

यदि आपका कोड यूआरएल पढ़ रहा है, तो यहां [कुछ सिफारिश] है (http://comments.gmane.org/gmane.comp.handhelds.android.devel/91510)। – khachik

+0

कि मेजबान का नाम बहुत लंबा लगता है – bigstones

+1

यह एफक्यूडीएन के लिए 253-वर्ण सीमा के तहत अच्छी तरह से है। – Blrfl

उत्तर

8

संदेश देशी ढेर के भ्रष्टाचार को इंगित करता है। जीसीसी ध्वज "-फस्टैक-रक्षक" का उपयोग होने पर स्टैक बफर ओवरफ्लो का पता लगाने के लिए कोड डाला जाता है।

यदि आपके ऐप में कोई जेएनआई कोड नहीं है, तो यह एंड्रॉइड प्लेटफ़ॉर्म में बहुत अच्छी तरह से एक बग हो सकता है।

यदि आपके पास इसे पुन: पेश करने का कोई तरीका है, तो कृपया विवरण के साथ b.android.com पर एक बग दर्ज करें।

+0

धन्यवाद! हाँ कोई जेएनआई कोड नहीं है। शुद्ध जावा ... समस्या यह है कि मैं इसे पुन: उत्पन्न नहीं कर सकता लेकिन मेरे ऐप का उपयोगकर्ता हर बार ऐसा लगता है ... – Jona