मैं अपनी प्रक्रिया में एक सिग्नल कैसे भेज सकता हूं जो इसकी स्मृति उपयोग स्थिति की जांच करने के लिए वाल्ग्रिंड के अंदर चलता है?valgrind के अंदर एक प्रक्रिया को संकेत भेजें?
धन्यवाद!
मैं अपनी प्रक्रिया में एक सिग्नल कैसे भेज सकता हूं जो इसकी स्मृति उपयोग स्थिति की जांच करने के लिए वाल्ग्रिंड के अंदर चलता है?valgrind के अंदर एक प्रक्रिया को संकेत भेजें?
धन्यवाद!
valgrind के लिए एक संकेत भेजने के लिए, pkill -USR1 valgrind मेरे लिए काम करने के लिए नहीं चाहता है।
pkill -USR1 Memcheck
चाल है।
कोई संकेत नहीं है जो वाल्ग्रिंड को इसकी स्मृति उपयोग स्थिति की जांच करने के लिए कहता है। यदि आप समय के साथ अपने कार्यक्रम द्वारा उपयोग की जाने वाली स्मृति की मात्रा में रुचि रखते हैं और जहां उस स्मृति को आवंटित किया जाता है, तो valgrind का massif टूल उस जानकारी को रिकॉर्ड कर सकता है, जिसे उसके ms_print
उपयोगिता का उपयोग करके प्रदर्शित किया जा सकता है। मैसिफ़ प्रोग्राम के निष्पादन के दौरान प्रोग्राम के मेमोरी उपयोग के स्वचालित रूप से स्नैपशॉट रिकॉर्ड करता है, जिसमें एक शीर्ष स्नैपशॉट शामिल होता है जिसमें उस बिंदु का प्रतिनिधित्व किया जाता है जिस पर स्मृति उपयोग अपने चरम पर था (डिफ़ॉल्ट विकल्पों का उपयोग करके 1% के भीतर)।
valgrind के पुंजक उपकरण के तहत अपने कार्यक्रम चलाने के लिए:
valgrind --tool=massif yourprogram
एक बाइनरी फ़ाइल massif.out.
पीआईडी बनाया जाएगा। पाठ के रूप में जानकारी को स्वरूपित करने ms_print का उपयोग करें:
ms_print massif.out.12345
आह, धन्यवाद। मेरे कार्यक्रम को बाहर निकलने के लिए सिग्नल नंबर 40 स्वीकार करने की आवश्यकता है। यह एक सर्वर डिमन है, इसलिए मैं इसे बाहर निकलने का एकमात्र तरीका सिग्नल 40 भेजना चाहता हूं, और सिग हैंडलर प्रोग्राम से बाहर निकल जाएगा। इसलिए, जब मैं वाल्ग्रिंड में अपनी मेमोरी उपयोग की जांच करता हूं, तो मुझे सिग्नल भेजने का कोई तरीका नहीं मिल रहा है, क्योंकि उस कार्यक्रम की कोई प्रक्रिया नहीं है। क्या वैसे भी मैं अपने कार्यक्रम में एक संकेत भेज सकता हूं? धन्यवाद! –
यदि आप अपने प्रोग्राम को चला रहे वाल्ग्रिंड प्रक्रिया को सिग्नल भेजते हैं तो वाल्ग्रिंड इसे आपके प्रोग्राम के सिग्नल हैंडलर पर भेज देगा। – mark4o