मुझे किसी प्रोग्राम से क्रैश डंप प्राप्त करने की आवश्यकता है। मैं इसे कैसे लूं? कार्यक्रम सी # में लिखा गया है। एक क्रैश डंप वास्तव में क्या है? यह कब बनाया जाता है? यह कहाँ से बचाया गया है? मैं इसे कैसे पढ़ूं?मैं क्रैश डंप कैसे प्राप्त करूं
उत्तर
चूंकि आप कह रहे हैं सी # मुझे लगता है कि आप विंडोज प्लेटफॉर्म का उपयोग कर रहे हैं।
एक क्रैशडम्प, या बस डंप, एक पूर्ण बिंदु पर एक प्रक्रिया की पूरी स्मृति स्नैपशॉट और अन्य संबंधित सिस्टम जानकारी है। डंप को प्रोग्राम क्रैश, हैंग, मेमोरी और रिसोर्स लीक डीबग करने के लिए इस्तेमाल किया जा सकता है और संभवतः यहां सूचीबद्ध अन्य समस्याएं हैं।
क्रैश के मामले में और एक क्रैश डंप से प्राप्त डेटा का पहला भाग कॉलस्टैक होगा। यह किसी दुर्घटना या उस बिंदु पर इंगित करता है जिस पर एक ऑपरेशन अवरुद्ध हो जाता है और कभी वापस नहीं आया है, इसलिए प्रोग्राम बैठता है और कुछ भी नहीं करता है।
संसाधन रिसाव के लिए एक प्रक्रिया के कई मेमोरी डंप को समय की अवधि में एकत्र किया जा सकता है और यह देखने के लिए जांच की जाती है कि स्मृति में कौन सी वस्तुएं बढ़ रही हैं। यह संकुचित करने में मदद कर सकता है कि कोड के कौन से हिस्से रिसाव पैदा कर रहे हैं। विशिष्ट मुद्दों को डीबग करने के बारे में और जानने के लिए मैं अत्यधिक this blog की अनुशंसा करता हूं।
डंप फ़ाइल को कैप्चर करने के कुछ तरीके हैं।
- ProcDump (http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx)
- विजुअल स्टूडियो 2010 (http://msdn.microsoft.com/en-us/library/vstudio/fk551230(v=vs.100).aspx)
- WinDbg - बुरा लेकिन अधिक से अधिक डराना अन्य उपकरणों
ProcDump आप बस कर सकते हैं के साथ करने के लिए नहीं:
c:\>procdump.exe -ma YourProcessName.exe
इस आदेश का परिणाम YourProcessNa का एक पूर्ण स्मृति स्नैपशॉट होगा me.dmp को लिखा गया: \। -मा स्विच एक पूर्ण स्मृति छवि डंपिंग निर्दिष्ट करता है। यदि आप किसी दुर्घटना को डिबग कर रहे हैं या लटका रहे हैं तो आप संभवतः -मा स्विच के बिना दूर हो सकते हैं। जब आप डेटा संरचनाओं की जांच करने के लिए जाते हैं तो पूर्ण मेमोरी डंप के बिना ध्यान रखें, आपके पास शायद वैध डेटा नहीं होगा। पूर्ण मेमोरी डंप के बिना आपके पास अभी भी कॉलस्टैक डेटा होगा जो अक्सर दुर्घटनाओं और लटकने के लिए पर्याप्त होता है। मैं आमतौर पर हार्डड्राइव स्पेस के पक्ष में त्रुटि सस्ता है इसलिए पूर्ण डंप इकट्ठा करें।
Procdump स्वचालित रूप से समय अंतराल पर या जब कोई विशिष्ट स्थिति पूरी हो जाती है तो डंप लेती है। अधिक जानकारी के लिए उपरोक्त लिंक पर दस्तावेज़ पढ़ें। एक स्विच मैं अनुशंसा करता हूं -e
है।
c:\>procdump.exe -ma -e YourProcessName.exe
तुरंत डंप लिखने के बजाय यह केवल तब ही लिखा जाएगा जब आपका प्रोग्राम क्रैश हो जाए।
विजुअल स्टूडियो 2010 के साथ आप डीबगर के साथ प्रक्रिया को संलग्न कर सकते हैं और डंप फ़ाइल सहेज सकते हैं। (ध्यान रखें जब आप अपने प्रोग्राम को F5 डीबग करते हैं तो विजुअल स्टूडियो स्वचालित रूप से संलग्न होता है)। जब आपका प्रोग्राम "ब्रेक स्टेट" (ब्रेकपॉइंट, अनचाहे अपवाद, क्रैश) में होता है तो Debug
मेनू में Save Dump As...
का विकल्प होगा। फिर आप उस डंप को कहीं भी सहेज सकते हैं जहां आप चाहें।
चूंकि आपने सी # का उल्लेख किया है, इसलिए आप प्रबंधित डंप फ़ाइलों को एकत्रित करने की संभावना रखते हैं। विजुअल स्टूडियो 2010 का उपयोग करना सबसे आसान तरीका है। बस, आपके द्वारा बनाई गई डंप फ़ाइल खोलें क्योंकि आप किसी अन्य फ़ाइल के रूप में और डिबगिंग शुरू करेंगे।
हालांकि, यदि यह कोई विकल्प नहीं है तो आप हमेशा एसओएस एक्सटेंशन के साथ वीएस 2008 या विन डीबीजी का उपयोग कर सकते हैं। मैं विजुअल स्टूडियो 2010 की अत्यधिक अनुशंसा करता हूं हालांकि एसओएस एक्सटेंशन और सामान्य रूप से विनडबग में एक बहुत सीधी सीखने की वक्र है। एसओएस के बारे में अधिक जानने के लिए इन एमएसडीएन लेखों को देखें here और here।
विजुअल स्टूडियो या procdump का उपयोग करने की सलाह देने का एक और कारण यह है कि वे आपके द्वारा अपेक्षित डंप फ़ाइल एकत्र करेंगे। मैं टास्क मैनेजर के "डंप फ़ाइल टूल बनाएं" की स्टीयरिंग साफ़ करने की अनुशंसा करता हूं। इसका कारण यह 32 बिट प्रक्रियाओं के 64 बिट डंप एकत्र करेगा जो डीबग करना बेहद मुश्किल है।
तुम भी WinDbg
कोई क्रैश जब राम स्मृति की सामग्री को और प्रोसेसर के कुछ भागों को एक फ़ाइल में कॉपी कर रहे हैं डंप है उपयोग करने का प्रयास कर सकते हैं। यह फ़ाइल किसी त्रुटि के महत्वपूर्ण बिंदु पर बनाई गई है और समस्या को डीबग करने के लिए उपयोग किया जा सकता है।
इसने मेरे लिए अतीत में काम किया है। यह विंडोज़ में डंप को क्रैश करने के लिए एक कीबोर्ड शॉर्टकट है।
* Start Registry Editor.
* Locate the following registry subkey:
o HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\i8042prt\Parameters
* On the Edit menu, click Add Value, and then add the following registry entry:
o Name: CrashOnCtrlScroll
Data Type: REG_DWORD
Value: 1
* Exit Registry Editor and then restart the computer.
http://vinaytechs.blogspot.com/2010/01/how-to-get-crash-or-hang-dump.html
CrashOnCtrlScrl विंडोज़ में कर्नेल-मोड क्रैश डंप (मौत की नीली स्क्रीन) को मजबूर करने के लिए है। यदि ओपी सी # का उपयोग कर रहा है, तो शायद वह चाहता है उससे अधिक है (हालांकि आपने उस अपडेट से पहले पोस्ट किया था)। –
बेहतर तो पर्याप्त नहीं है। – sleath
यह पता लगाने के दौरान कि कर्नेल-मोड डंप * से क्या उपयोगकर्ता-मोड क्या कर रहा था * संभव है; अगर मैं इससे बच सकता तो मैं ऐसा करना चाहता हूं। –
ल्यूक, एक क्रैश डंप पल में अपने आवेदन की स्थिति से संबंधित डेटा की एक पूरी बैग दुर्घटना हुआ है है, डंप करने के लिए इसे कहीं उन सभी जानकारी रिकॉर्ड करने के लिए, आम तौर पर मतलब है एक पाठ फ़ाइल में।
एक अपवाद तब होता है जब एक अपवाद होता है तो आप पूरे स्टैकट्रैक को लॉग इन करना चाहते हैं ताकि आप बाद में जांच कर सकें और देखें कि कौन सी विधि विफल रही है और किस अपवाद को फेंक दिया गया है, पैरामीटर मान क्या थे और इसी तरह। यह वास्तव में एक क्रश डंप नहीं है लेकिन कई मामलों में बहुत मदद करता है।
दुर्घटना डंप और अनुप्रयोग क्रैश के बारे में एमएस द्वारा हाल ही में विकसित कुछ, मुझे लगता है कि यह वास्तव में विंडोज 7 से संबंधित था नहीं था ...
यहाँ देखें: आवेदन रिकवरी और पुनः प्रारंभ
http://msdn.microsoft.com/en-us/library/cc948909(v=vs.85).aspx
userdump PID
को 10
एक बार स्थापित ब्राउज़ (आप कार्य प्रबंधक में इस पा सकते हैं, लेकिन आप हो सकता है मानक दृश्य में कॉलम जोड़ने की आवश्यकता है)।
यह फ़ाइल तब विजुअल स्टूडियो में खोली जा सकती है - आपको केवल यह सुनिश्चित करने की आवश्यकता है कि आपके पास प्रतीक हैं।
विंडोज 7 में सिर्फ सही कार्य प्रबंधक में प्रक्रिया पर क्लिक करें और
मैं अत्यधिक कार्य प्रबंधक के "डंप फ़ाइल बनाएं" का उपयोग न करने की अत्यधिक अनुशंसा करता हूं। 64 बिट सिस्टम पर यह 32 बिट प्रक्रियाओं के 64 बिट डंप बनाता है। ये डंप फ़ाइलें बहुत अधिक बेकार हैं जब तक आप केवल WinDbg और WOW64 एक्सटेंशन का उपयोग नहीं करना चाहते हैं: http://msdn.microsoft.com/en-us/library/aa384163(VS.85).aspx। – Evan
उपयोग ADPlus "डंप फ़ाइल बनाएँ"। यह विंडोज के लिए डिबगिंग उपकरण के साथ आता है। यह इसकी होम निर्देशिका के नीचे क्रैश डंप के फ़ोल्डर्स बनाएगा। आप बाद में WinDbg का उपयोग कर उनका विश्लेषण कर सकते हैं।
- 1. आईआईएस वर्कर प्रक्रिया क्रैश डंप प्राप्त करना
- 2. क्रैश डंप - WinDbg
- 3. मैं कैसे प्राप्त करूं GetFrameContext Windbg
- 4. मैं हैश मानचित्र की सामग्री कैसे डंप करूं?
- 5. मैं कुछ SQLite3 टेबल के डेटा को डंप कैसे करूं?
- 6. मैं ऑब्जेक्ट के फ़ील्ड को कंसोल पर कैसे डंप करूं?
- 7. मैं जेएमएक्स डेटा को प्रोग्रामेटिक रूप से डंप कैसे करूं?
- 8. क्या मुझे परवाह है कि प्रतीक संस्करण डंप गुम है? मैं यह कैसे प्राप्त करूं?
- 9. मैं स्रोत लाइन जानकारी डंप करने के लिए कॉलग्रंड कैसे प्राप्त करूं?
- 10. विंडोज़ में एक प्रक्रिया दुर्घटनाग्रस्त हो गई .. क्रैश डंप स्थान
- 11. मैं हास्केल में पढ़ने के अपवाद कैसे प्राप्त करूं?
- 12. मैं क्रैश डंप के सीएलआर संस्करण को कैसे जान सकता हूं?
- 13. कोर डंप फ़ाइलें: खुली फ़ाइलों पर जानकारी कैसे प्राप्त करें?
- 14. कोर डंप
- 15. मैं यूआई थ्रेड डिस्पैचर कैसे प्राप्त करूं?
- 16. मैं कस्टम कस्टम कैसे प्राप्त करूं?
- 17. मैं गिट मैन्युअल प्रविष्टियां कैसे प्राप्त करूं?
- 18. मैं एनएसएसटींग से कक्षा कैसे प्राप्त करूं?
- 19. मैं शब्दकोश से कैसे प्राप्त करूं?
- 20. मैं वीबीए से SQLite कैसे प्राप्त करूं?
- 21. मैं एसवीएन सर्वर लॉग कैसे प्राप्त करूं?
- 22. मैं कमांडलाइन कैसे प्राप्त करूं जिसने प्रक्रिया
- 23. मैं उबंटू स्रोत कोड कैसे प्राप्त करूं?
- 24. मैं वर्तमान श्रेणी आईडी कैसे प्राप्त करूं?
- 25. मैं ActionExecutingContext से MethodInfo कैसे प्राप्त करूं?
- 26. मैं UIImagePickerControllerReferenceURL से डेटा कैसे प्राप्त करूं?
- 27. मैं ग्रहण में स्केलेटेस्ट कैसे प्राप्त करूं?
- 28. मैं XDocument से नेमटेबल कैसे प्राप्त करूं?
- 29. पिचर्म - मैं "घड़ियां" फलक कैसे प्राप्त करूं?
- 30. मैं हास्केल में कॉलस्टैक कैसे प्राप्त करूं?
ओएस? प्लेटफार्म? भाषा? –
क्या आपका मतलब है कि एप्लिकेशन को क्रैश होने पर आपको डंप बनाने की आवश्यकता है *, या क्या आपको बस चल रहे एप्लिकेशन की मेमोरी डंप लेने की आवश्यकता है? क्योंकि दोनों काफी अलग हैं। –
http://blogs.msdn.com/b/debugger/archive/2009/12/30/what-is-a-dump-and-how-do-i-create-one.aspx - अच्छी तरह से समझाया गया! –