मैं प्रदर्शन काउंटरों के साथ रहूंगा। वहाँ के लिए
- मेमोरी होते हैं
- GDI हैंडल (बिटमैप, फ़ॉन्ट, ...)
- हैंडल (फ़ाइल, रजिस्ट्री कुंजी, घटना, Mutex, सॉकेट, प्रक्रिया, ...)
- विंडोज़ (उपयोगकर्ता ऑब्जेक्ट्स)
सटीक प्रकार प्रदर्शन काउंटर का उपयोग करके निर्धारित नहीं किया जा सकता है लेकिन यदि आप कुछ लीक कर रहे हैं तो यह आपको संकेत दे सकता है। यदि आप जानना चाहते हैं कि आप कौन सा हैंडल SysInternals से हैंडल का उपयोग कर सकते हैं जो आपको एक अच्छा प्रति प्रक्रिया आउटपुट देगा जो आप पार्स कर सकते हैं।
यदि आप हैंडल लीक को ठीक करना चाहते हैं तो आपको एक डीबगर (विंडबब्ग) का उपयोग करने की आवश्यकता है और प्रत्येक हैंडल के लिए सभी एक्वायर/रिलीज कॉल स्टैक को ट्रैक करना शुरू करने के लिए हैंडल एक्सटेंशन का उपयोग करें ताकि आप बाद वाले आंकड़े प्राप्त कर सकें आवंटित किया गया लेकिन अभी तक मुक्त नहीं हुआ।
आपका प्रश्न व्यापक रूप से व्यापक है क्योंकि संसाधन रिसाव को पकड़ने की सटीक रणनीति रिसाव की प्रकृति पर निर्भर है। EasyHook सभी संसाधन एक्वायर/रिलीज कॉल को ट्रैक करने और उन्हें स्वचालित रूप से रिकॉर्ड करने का एक अच्छा समाधान है।
यदि आप डीबगर को स्वचालित करना चाहते हैं उदा। सी # आप http://wmemoryprofiler.codeplex.com/ का उपयोग कर सकते हैं जो मूल रूप से विंडबग के आसपास एक प्रबंधित आवरण है जो आपको अपने आवेदन को स्वयं डिबग करने की अनुमति देता है।
जब आप सिद्धांतों को सीखना चाहते हैं कि विभिन्न संसाधनों के लिए बिखरे हुए डेटा पर अपने हाथ कैसे प्राप्त करें, तो आपको प्रक्रिया हैकर का कोड पढ़ना चाहिए।
स्रोत
2014-02-17 23:19:30
क्या डीबगर-सहायता का विचार अच्छा है? (यानी 'लोड कर्सर' जैसे विन एपीआई कार्यों को कॉल देख रहे हैं)? कार्यक्रम \ dll शायद एन्क्रिप्टेड और गैर-डिबग्रेबल –
मुझे लगता है कि यह पर्यावरण पर भी निर्भर करता है: मूल या प्रबंधित। –
क्या आपने SysInternals से प्रोसेस मॉनिटर का प्रयास किया था? –