मैं एक CentOS 5.5 कंप्यूटर पर एक सी प्रोग्राम चला रहा हूं। कार्यक्रम एक लूप चलाता है जो बाहरी स्रोत द्वारा रुकने के लिए कहा जाता है जब तक परीक्षण और अधिक परीक्षण करता है।किसी और के ड्राइवर से स्मृति रिसाव से निपटने के लिए कैसे करें
आवश्यकता से मैं एक पीसीआई कार्ड के लिए एक पुराने ड्राइवर का उपयोग कर रहा हूं जो मेरे परीक्षण प्रणाली के साथ संचार करता है। CentOS 4.5 से 5.5 तक अपग्रेड करने के बाद से मैंने देखा है कि मैं केवल अपने कार्यक्रम के माध्यम से 175 बार लूप कर सकता हूं। उस समय कार्यक्रम ढेर स्मृति आवंटित एक त्रुटि के साथ रोकता है। जब भी कार्यक्रम लूप होता है और सिस्टम सिर्फ स्मृति से बाहर चला जाता है, तो मैं 10 से 20 एमबी के हिस्सों में इस्तेमाल होने वाली मेमोरी देख सकता हूं। जब मैं Cntrl-C का उपयोग कर प्रोग्राम से बाहर निकलता हूं तो स्मृति तुरंत मुक्त हो जाती है।
मैंने वालग्रिंड का उपयोग किया है जो इंगित करता है कि मेमोरी लीक पुराने ड्राइवर में हैं। जिस कंपनी ने ड्राइवर लिखा है वह अभी विंडोज का समर्थन करता है और उन्होंने ड्राइवर को 5 वर्षों में अपग्रेड नहीं किया है।
स्रोत कोड के बिना क्या मैं हर बार ड्राइवर द्वारा उपयोग की गई मेमोरी को अपने प्रोग्राम के माध्यम से लूप कर सकता हूं?
धन्यवाद।
क्या ड्राइवर उपयोगकर्तास्थान या कर्नलस्पेस में चल रहा है? – Novelocrat