2010-03-22 10 views
7

हाय मैं valgrind के लिए नया हूँ। मुझे पता है कि कमांड लाइन से निष्पादन योग्य फ़ाइलों पर valgrind कैसे चलाएं। लेकिन आप अपाचे/myqld/यातायात सर्वर आदि जैसे सर्वर प्रक्रियाओं पर valgrind कैसे चलाते हैं ..सर्वर प्रक्रिया पर valgrind

मैं प्लगइन में कुछ मेमोरी लीक होने के लिए ट्रैफिक सर्वर (http://incubator.apache.org/projects/trafficserver.html) पर वालग्रिंड चलाने के लिए चाहता हूं।

कोई सुझाव?

धन्यवाद, pigol

उत्तर

5

आप वेलग्रिंड के नियंत्रण में सर्वर शुरू कर दिया है। बस सर्वर की सामान्य प्रारंभ कमांड लें, और valgrind के साथ इसे प्रीपेड करें।

वालग्रिंड आपके मुख्य "सर्वर" प्रक्रिया स्पॉन्स की हर प्रक्रिया से जुड़ा होगा। जब प्रत्येक धागा या प्रक्रिया समाप्त होती है, तो वालग्रिंड अपने विश्लेषण को आउटपुट करेगा, इसलिए मैं एक फ़ाइल में पाइपिंग की सिफारिश करता हूं (सुनिश्चित नहीं है कि यह stderr या stdout पर आता है।)

यदि आपका सामान्य प्रारंभ कमांड /usr/local/mysql/bin/mysqld है, तो प्रारंभ करें इसके बजाय valgrind /usr/local/mysql/bin/mysqld के साथ सर्वर।

आप आमतौर पर एक स्क्रिप्ट (जैसे /etc/init.d/mysql start) आप शायद वास्तविक आदेश स्क्रिप्ट निष्पादित करता है के लिए स्क्रिप्ट अंदर देखने के लिए की आवश्यकता होगी के साथ सेवा, और चलाने लगते हैं कि स्क्रिप्ट के बजाय।

मेमोरी लीक रिपोर्ट प्राप्त करने के लिए --leak-check=full विकल्प को पास करने के लिए मत भूलना।

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