
ProcDump Sysinternals टूल का एक लिनक्स संस्करण
ProcDump Linux और Mac के लिए Windows के Sysinternals सुइट के क्लासिक ProcDump टूल की एक पुनर्कल्पना है। ProcDump Linux और Mac डेवलपर्स के लिए प्रदर्शन ट्रिगर्स के आधार पर अपने एप्लिकेशन के कोर डंप बनाने का एक सुविधाजनक तरीका प्रदान करता है। ProcDump for Linux and Mac Sysinternals का हिस्सा है।

gdb >= 7.6.1कृपया स्थापना निर्देश यहाँ देखें।
कृपया बिल्ड निर्देश यहाँ देखें।
ब्रेकिंग चेंज ProcDump 1.3 के रिलीज़ के साथ, स्विच अब Windows ProcDump संस्करण के साथ संरेखित हैं। कृपया ध्यान दें कि Mac संस्करण में वर्तमान में ट्रिगर्स का एक सीमित सेट है।
Capture Usage:
procdump [-n Count]
[-s Seconds]
[-c|-cl CPU_Usage]
[-m|-ml Commit_Usage1[,Commit_Usage2...]]
[-gcm [<GCGeneration>: | LOH: | POH:]Memory_Usage1[,Memory_Usage2...]]
[-gcgen Generation]
[-restrack [nodump]]
[-sr Sample_Rate]
[-tc Thread_Threshold]
[-fc FileDescriptor_Threshold]
[-sig Signal_Number1[,Signal_Number2...]]
[-e]
[-f Include_Filter,...]
[-fx Exclude_Filter]
[-mc Custom_Dump_Mask]
[-pf Polling_Frequency]
[-o]
[-log syslog|stdout]
{
{{[-w] Process_Name | [-pgid] PID} [Dump_File | Dump_Folder]}
}
Options:
-n बाहर निकलने से पहले लिखने के लिए डंप की संख्या।
-s डंप लिखने से पहले लगातार सेकंड (डिफ़ॉल्ट 10 है)।
-c CPU थ्रेशोल्ड जिसके ऊपर प्रक्रिया का डंप बनाया जाए।
-cl CPU थ्रेशोल्ड जिसके नीचे प्रक्रिया का डंप बनाया जाए।
-m मेमोरी कमिट थ्रेशोल्ड (MB) जिसके ऊपर डंप बनाए जाएं।
-ml मेमोरी कमिट थ्रेशोल्ड (MB) जिसके नीचे डंप बनाए जाएं।
-gcm [.NET] GC मेमोरी थ्रेशोल्ड (MB) जिसके ऊपर निर्दिष्ट जनरेशन या हीप के लिए डंप बनाएं (डिफ़ॉल्ट कुल .NET मेमोरी उपयोग है)।
-gcgen [.NET] डंप तब बनाएं जब निर्दिष्ट जनरेशन का कचरा संग्रहण शुरू और समाप्त हो।
-restrack मेमोरी लीक ट्रैकिंग सक्षम करें (malloc परिवार के APIs)। यदि अन्य ट्रिगर्स के बिना उपयोग किया जाता है, तो मैन्युअल रूप से restrack रिपोर्ट कैप्चर करने के लिए 't' का उपयोग करें। अन्य ट्रिगर्स के साथ उपयोग किए जाने पर, डंप जनरेशन को रोकने और केवल restrack रिपोर्ट उत्पन्न करने के लिए 'nodump' विकल्प का उपयोग किया जा सकता है।
-sr -restrack का उपयोग करते समय नमूना दर।
-tc थ्रेड काउंट थ्रेशोल्ड जिसके ऊपर प्रक्रिया का डंप बनाया जाए।
-fc फाइल डिस्क्रिप्टर काउंट थ्रेशोल्ड जिसके ऊपर प्रक्रिया का डंप बनाया जाए।
-sig सिग्नल नंबरों की अल्पविराम से अलग की गई सूची, जिसके दौरान कोई भी सिग्नल प्रक्रिया के डंप का परिणाम देता है।
-e [.NET] डंप तब बनाएं जब प्रक्रिया कोई अपवाद अनुभव करती है।
-f .NET अपवादों की सामग्री पर फ़िल्टर (शामिल करें) (अल्पविराम से अलग)। वाइल्डकार्ड (*) समर्थित हैं।
-fx -restrack कॉल स्टैक की सामग्री पर फ़िल्टर (बाहर करें)। वाइल्डकार्ड (*) समर्थित हैं।
-mc कस्टम कोर डंप मास्क (हेक्स में) जो इंगित करता है कि कोर डंप में कौन सी मेमोरी शामिल की जानी चाहिए। उपलब्ध विकल्पों के लिए कृपया 'man core' (/proc/[pid]/coredump_filter) देखें।
-pf पोलिंग फ़्रीक्वेंसी।
-o मौजूदा डंप फ़ाइल को अधिलेखित करें।
-log विस्तारित ProcDump ट्रेसिंग को निर्दिष्ट आउटपुट स्ट्रीम (syslog या stdout) पर लिखता है।
-w निर्दिष्ट प्रक्रिया के लॉन्च होने की प्रतीक्षा करें यदि वह चल नहीं रही है।
-pgid निर्दिष्ट प्रक्रिया ID एक प्रक्रिया समूह ID को संदर्भित करती है।
-restrack स्विच संसाधन ट्रैकिंग को सक्रिय करता है, जो कोर डंप उत्पन्न करने के समय मुक्त नहीं किए गए किसी भी संसाधन आवंटन की निगरानी और रिपोर्टिंग की अनुमति देता है। परिणाम '.restrack' एक्सटेंशन वाली फ़ाइल में सहेजे जाते हैं। वर्तमान में, निम्नलिखित संसाधन आवंटन/डीलोकेशन फ़ंक्शन ट्रैक किए जाते हैं:
आवंटन:
डीलोकेशन:
Mac संस्करण वर्तमान में संसाधन ट्रैकिंग लागू नहीं करता है।
निम्नलिखित उदाहरण सभी pid == 1234 वाली प्रक्रिया को लक्षित करते हैं
निम्नलिखित तुरंत एक कोर डंप बनाएगा।
sudo procdump 1234
निम्नलिखित 10 सेकंड के अंतराल पर 3 कोर डंप बनाएगा।
sudo procdump -n 3 1234
निम्नलिखित 5 सेकंड के अंतराल पर 3 कोर डंप बनाएगा।
sudo procdump -n 3 -s 5 1234
निम्नलिखित हर बार जब प्रक्रिया का CPU उपयोग >= 65% होता है, तब एक कोर डंप बनाएगा, अधिकतम 3 बार, प्रत्येक डंप के बीच कम से कम 10 सेकंड के साथ।
sudo procdump -c 65 -n 3 1234
निम्नलिखित हर बार जब प्रक्रिया का CPU उपयोग >= 65% होता है, तब एक कोर डंप बनाएगा, अधिकतम 3 बार, प्रत्येक डंप के बीच कम से कम 5 सेकंड के साथ।
sudo procdump -c 65 -n 3 -s 5 1234
निम्नलिखित एक कोर डंप बनाएगा जब CPU उपयोग सीमा [10,65] से बाहर हो।
sudo procdump -cl 10 -c 65 1234
निम्नलिखित एक कोर डंप बनाएगा जब CPU उपयोग >= 65% या मेमोरी उपयोग >= 100 MB हो।
sudo procdump -c 65 -m 100 1234
निम्नलिखित एक कोर डंप बनाएगा जब मेमोरी उपयोग >= 100 MB हो, उसके बाद दूसरा डंप जब मेमोरी उपयोग >= 200MB हो।
sudo procdump -m 100,200 1234
निम्नलिखित हर बार जब उपयोगकर्ता 't' दबाता है, एक मेमोरी लीक रिपोर्ट (कोई डंप नहीं) बनाएगा:
sudo procdump -restrack 1234
निम्नलिखित 5 सेकंड के अंतराल पर 3 मेमोरी लीक रिपोर्ट (कोई डंप नहीं) बनाएगा:
sudo procdump -n 3 -s 5 -restrack nodump 1234
निम्नलिखित एक कोर डंप और एक मेमोरी लीक रिपोर्ट बनाएगा जब मेमोरी उपयोग >= 100 MB हो
sudo procdump -m 100 -restrack 1234
निम्नलिखित एक मेमोरी लीक रिपोर्ट (कोई डंप नहीं) बनाएगा जब मेमोरी उपयोग >= 100 MB हो
sudo procdump -m 100 -restrack nodump 1234
निम्नलिखित एक कोर डंप और एक मेमोरी लीक रिपोर्ट बनाएगा जब मेमोरी उपयोग >= 100 MB हो, हर 10वें मेमोरी आवंटन का नमूना लेकर।
sudo procdump -m 100 -restrack -sr 10 1234
निम्नलिखित एक कोर डंप और एक मेमोरी लीक रिपोर्ट बनाएगा जब मेमोरी उपयोग >= 100 MB हो और किसी भी कॉल स्टैक को बाहर करेगा जिसमें "cache" स्ट्रिंग वाले फ्रेम हों
sudo procdump -m 100 -restrack -fx *cache* 1234
निम्नलिखित एक कोर डंप बनाएगा जब कुल .NET मेमोरी उपयोग >= 100 MB हो, उसके बाद दूसरा डंप जब मेमोरी उपयोग >= 200MB हो।
sudo procdump -gcm 100,200 1234
निम्नलिखित एक कोर डंप बनाएगा जब जनरेशन 1 के लिए .NET मेमोरी उपयोग >= 1 MB हो, उसके बाद दूसरा डंप जब मेमोरी उपयोग >= 2MB हो।
sudo procdump -gcm 1:1,2 1234
निम्नलिखित एक कोर डंप बनाएगा जब .NET Large Object Heap मेमोरी उपयोग >= 100 MB हो, उसके बाद दूसरा डंप जब मेमोरी उपयोग >= 200MB हो।
sudo procdump -gcm LOH:100,200 1234
निम्नलिखित .NET जनरेशन 1 कचरा संग्रहण की शुरुआत और अंत में एक कोर डंप बनाएगा।
sudo procdump -gcgen 1
निम्नलिखित /tmp डायरेक्टरी में तुरंत एक कोर डंप बनाएगा।
sudo procdump 1234 /tmp
निम्नलिखित वर्तमान डायरेक्टरी में नाम dump_0.1234 के साथ एक कोर डंप बनाएगा। यदि -n का उपयोग किया जाता है, तो फ़ाइलों का नाम dump_0.1234, dump_1.1234 और इसी तरह होगा।
sudo procdump 1234 dump
निम्नलिखित जब SIGSEGV होता है तब एक कोर डंप बनाएगा।
sudo procdump -sig 11 1234
निम्नलिखित जब SIGSEGV होता है तब एक कोर डंप बनाएगा जहां कोर डंप में केवल अनाम निजी मैपिंग होती हैं।
sudo procdump -mc 1 -sig 11 1234
निम्नलिखित एक कोर डंप बनाएगा जब लक्ष्य .NET एप्लिकेशन एक System.InvalidOperationException फेंकता है
sudo procdump -e -f System.InvalidOperationException 1234
इन्क्लूड फ़िल्टर आंशिक और वाइल्डकार्ड मिलान का समर्थन करता है, इसलिए निम्नलिखित भी System.InvalidOperationException के लिए एक कोर डंप बनाएगा
sudo procdump -e -f InvalidOperation 1234
या
sudo procdump -e -f "*Invali*Operation*" 1234
सभी विकल्पों का उपयोग
-wके साथ भी किया जा सकता है, दिए गए नाम वाली किसी भी प्रक्रिया की प्रतीक्षा करने के लिए।
निम्नलिखित प्रक्रिया का नाम my_application है और मिलने पर तुरंत एक कोर डंप बनाता है।
sudo procdump -w my_application
यदि आप मुद्दों को ठीक करने और सीधे कोड बेस में योगदान देने में रुचि रखते हैं, तो कृपया दस्तावेज़ How to Contribute देखें, जो निम्नलिखित को कवर करता है:
कृपया हमारा आचार संहिता भी देखें।
Copyright (c) Microsoft Corporation. All rights reserved.
MIT लाइसेंस के तहत लाइसेंस प्राप्त।
ProcDump for Linux: