2012-06-07 19 views
5

मैं एक प्रोग्राम चला रहा हूं जो एक निरस्त जाल (त्रुटि कोड 12) में विफल रहता है। त्रुटि को डीबग करने के लिए, मैं वालग्रिंड चला रहा हूं, लेकिन हर बार जब मैं इसे चलाता हूं तो वाल्ग्रिंड स्वयं "मारे गए" संदेश से दुर्घटनाग्रस्त हो जाता है और कुछ और नहीं (अंत संदेश ढेर सारांश आदि दिखाई नहीं देता है)। मुझे इस बारे में Google या SO पर कुछ भी नहीं मिल रहा है और मुझे आशा है कि कोई इस त्रुटि का कारण बनने और इसे डीबग करने के तरीके पर कुछ प्रकाश डालेगा।valgrind "हत्या" संदेश

किसी भी मदद की सराहना की जाती है!

+1

[यह मंच पोस्ट] (http://www.linuxquestions.org/questions/slackware-14/valgrind-crashes-at-start-up-with-killed-error-message-437863/) ऐसा लगता है " मारे गए "इससे कोई फर्क नहीं पड़ता कि कितना मूल्यवान चल रहा है, क्या यह आपके मामले में समान है? इसे 'valgrind --help' के साथ आज़माएं। – Collin

+0

नहीं, valgrind अन्य स्थितियों में ठीक चलाता है। मैंने इसे पहले उसी कंप्यूटर पर पिछली मेमोरी त्रुटि डीबग करने का इस्तेमाल किया था। यह केवल इस विशेष मामले में होता है। – Jack

उत्तर

5

मुझे लगता है कि आपकी प्रक्रिया शायद कर्नेल के आउट ऑफ़ मेमोरी सिस्टम द्वारा मारे जा रही है - जब सिस्टम मेमोरी से बाहर हो जाता है जो एक प्रक्रिया को मुश्किल से मार देगा जो फंस नहीं सकता है, यही कारण है कि वाल्ग्रिंड बिना कहने से बाहर निकल रहा है कुछ भी।

संभवतः आपका प्रोग्राम बहुत सारी मेमोरी का उपयोग करता है और, जब स्मृति की परिभाषा को ट्रैक करने के लिए अतिरिक्त स्मृति की आवश्यकता होती है, वहां पर्याप्त स्मृति उपलब्ध नहीं होती है और (निस्संदेह बहुत बड़ी) वाल्ग्रिंड प्रक्रिया मारे जा रही है।

यदि मैं सही हूं तो आपको अधिक प्रोग्राम के साथ मशीन की आवश्यकता होगी, या कम से कम स्वैप के साथ, अपने कार्यक्रम को वालग्रिंड के तहत चलाने में सक्षम होने के लिए।

+0

यह पता चला है कि बार-बार आवंटित स्मृति का एक बड़ा हिस्सा था, लेकिन एक लूप में पूरी तरह से डिलीकेट नहीं किया गया था, जिससे मैंने सोचा था कि बहुत अधिक मेमोरी उपयोग होता है। अंतर्दृष्टि के लिए धन्यवाद! – Jack

+0

क्या यह पुष्टि करने का कोई तरीका है कि स्मृति समस्या से केवल वाल्ग्रिंड मारे जा रहा है या नहीं? –

0

यह भी हो सकता है यदि आपकी मशीन गैर मानक मेमोरी आवंटन का उपयोग कर रही है, उदाहरण के लिए एक कॉप्रोसेसर (जीपीयू, एफपीजीए) का उपयोग करना जिसमें इसकी अपनी भौतिक स्मृति है जो प्रोसेसर की मेमोरी स्पेस में उपयोग की जाती है।

हमारे मामले में, विक्रेता को अपने ढांचे को वालग्रिंड के साथ काम करने के लिए ठीक करना पड़ा।

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