2009-03-20 10 views
8

मैं एक प्रोग्राम बनाने की कोशिश कर रहा हूं जो समय-समय पर चीजों का पूरा समूह रिकॉर्ड करता है। विशिष्ट कारण यह है कि यदि यह ब्लूज़क्रेंस होता है, तो डेवलपर वापस जा सकता है और बहुत सारे वातावरण की जांच कर सकता है और देख सकता है कि उस समय क्या चल रहा था।ब्लूस्क्रीन को सिमुलेट करना

मेरी समस्या, ब्लूस्क्रीन का कारण बनने का उनका तरीका है? शायद विंडोज़एपीआई कॉल के साथ (ज़ीरोमेमरी शायद?)।

Anywhoo, अगर आप कॉल पर ब्लूस्क्रीन का कारण बनने के तरीके के बारे में सोच सकते हैं तो मैं आभारी रहूंगा।

जिस कंप्यूटर पर मैं इसका परीक्षण कर रहा हूं वह इस हाहा जैसी चीजें लेने के लिए डिज़ाइन किया गया है।

जिस भाषा का मैं उपयोग कर रहा हूं वह सी \ सी ++ है। धन्यवाद

+0

एक डिवाइस ड्राइवर लोड करें जो तुरंत एक अवैध निर्देश निष्पादित करता है? – derobert

उत्तर

4

यदि आप सीएसआरएस प्रक्रिया को मार देते हैं तो आपको नीली स्क्रीन मिल जाएगी।

+0

क्या यह हर बार होगा? या यह सिक्का फ्लिप का कुछ हद तक है? –

+0

सीएसआरएसएस एक महत्वपूर्ण प्रक्रिया है - सिस्टम क्रैश होने पर हमेशा बगचेक करेगा। –

+0

मैं नकली बीएसओडी और सीएसआरएस की हत्या के बीच वास्तव में बहुत अंतर नहीं देख सकता ... –

1

यदि आप ब्लूस्क्रीन जैसे हार्ड क्रैश को अनुकरण करना चाहते हैं, तो आपको बहुत अधिक बिजली कॉर्ड को यंक करना होगा। सिफारिश नहीं की गई।

दुर्घटना के मामले में, लगातार भंडारण में सहेजा नहीं गया कुछ भी खो जाएगा। यदि आप लॉगिंग के उद्देश्यों के लिए क्रैश अनुकरण करना चाहते हैं, तो अपने लॉगर में "मार डालें" लिखें, जो लॉगिंग को रोकता है। अब आप लॉगिंग को मारकर एक क्रैश अनुकरण कर सकते हैं और सुनिश्चित कर सकते हैं कि आपके पास वास्तविक क्रैश के मामले में वह डेटा है जो आप चाहते थे।

+0

उनकी वास्तव में कंप्यूटर पर कोई अन्य प्रोग्राम नहीं चल रहा है लेकिन मेरा इसलिए मैं डेटा हानि के बारे में चिंतित नहीं हूं। मैं विशेष रूप से तनाव परीक्षण के लिए इस कंप्यूटर का उपयोग कर रहा हूँ। मैं सटीकता के लिए एक वास्तविक ब्लूस्क्रीन चाहता हूँ। –

12

आप एक मशीन कॉन्फ़िगर कर सकते हैं एक कीस्ट्रोक पर दुर्घटना (Ctrl-ScrollLock)

के बाद से यह प्रतीत होता है कई बार जब कि USB के साथ कुछ सिस्टम पर काम नहीं करेगा देखते हैं कि कीबोर्ड, आप विंडोज के लिए डिबगिंग टूल्स भी प्राप्त कर सकते हैं, कर्नेल डीबगर स्थापित कर सकते हैं, और बगचेक को मजबूर करने के लिए ".crash" कमांड का उपयोग कर सकते हैं।

+0

इसका एकमात्र नीचे यह एक "नकली" ब्लूस्क्रीन है। मेरा मतलब यह नहीं है कि आप नकली हो सकते हैं, लेकिन विंडोज़ में एक कोडपैथ है जो विशेष रूप से ब्लूज़क्रेंस करता है जब आप चाबियाँ दबाते हैं, या कर्नेल डीबगर का उपयोग करते हैं, जहां सीएसआरएस को मारना वास्तव में एक दुर्घटना है। –

+0

कीबोर्ड विकल्प के लिए, क्रैश एक ड्राइवर में है जो बाधा को संभालने में सक्षम है - उससे अधिक गैर-निर्धारक नहीं हो सकता है। केडी दुर्घटना के लिए बहुत समान - Ctrl-C का उपयोग करके केडी में तोड़ें और सिस्टम किसी भी स्थिति में हो सकता है। सीएसआरएसएस क्रैश वास्तव में विंडोज़ में विशिष्ट कोड के कारण होता है। –

+0

@ माइकल, यह सीएसआरएसएस की तुलना में अधिक हिंसक है, लेकिन फिर भी स्मृति भ्रष्टाचार आदि का कारण नहीं बनता है, और इसलिए परीक्षण के लिए थोड़ा कम प्रभावी हो सकता है। यद्यपि कोई वास्तव में हिंसक होना चाहता है, प्लग खींचना प्रभावी है :) – bdonlan

0

मुझे यकीन है कि वास्तव में क्या आप परीक्षण होगा नहीं हूँ। चूंकि आपका प्रोग्राम समय-समय पर चलता है, निश्चित रूप से यह जांचना पर्याप्त है कि सिस्टम आवृत्ति के दौरान निर्दिष्ट आवृत्ति पर जानकारी डाली जा रही है? क्या आप जांच रहे हैं कि नीली स्क्रीन के बाद जानकारी रहती है? इस पर निर्भर करते हुए कि आप इसे कैसे डंप कर रहे हैं (और चाहे आप बफर फ्लश कर रहे हों), यह आवश्यक नहीं हो सकता है।

+0

मैं डेवलपर्स को समझने के लिए प्रोग्राम बनाने की कोशिश कर रहा हूं कि ब्लूसेक्रेंस का क्या कारण बनता है। यह निश्चित समय पर कई रनटाइम जानकारी संग्रहीत करके काम करता है। –

+0

@ डेफिस - मेरा मुद्दा यह है कि कार्यक्रम जानकारी संग्रहीत करता है। चूंकि यह समय-समय पर स्टोर करता है, नीली स्क्रीन के समय नहीं, यह जांचने के लिए पर्याप्त होना चाहिए कि जानकारी संग्रहीत की जाती है। मुझे यकीन नहीं है कि नीली स्क्रीन के कारण आपको क्या अतिरिक्त लाभ मिलता है। – tvanfosson

+0

@tvan, शायद वह देखना चाहता है कि ब्लूस्क्रीन के कारण की पहचान करने के लिए जानकारी उपयोगी होगी या नहीं? – bdonlan

6

बीएसओडी का कारण बनने के लिए, कर्नेल मोड में चल रहे ड्राइवर को इसका कारण बनना होगा। यदि आप वास्तव में ऐसा करना चाहते हैं, तो आप एक ड्राइवर लिख सकते हैं जो कि केबग चेक को उतारने के लिए उजागर करता है। इस उपयोगिता ओर इशारा करते हुए के लिए नीचे दिए गए एंड्रयू को

http://msdn.microsoft.com/en-us/library/ms801640.aspx

धन्यवाद:

सभी की

http://download.sysinternals.com/files/NotMyFault.zip

+1

SysInternals "[NotMyFault] (http://download.sysinternals.com/files/NotMyFault.zip) नामक उपयोगिता प्रदान करता है" जो क्रैश उत्पन्न कर सकता है ('KeBugCheckEx' और अन्य तरीकों से कॉल करके) यदि आप नहीं करते हैं अपना खुद का लिखना चाहते हैं। –

1

पहले, मैं इस पर BSOD परीक्षण करने के लिए एक आभासी मशीन का उपयोग करने की सलाह देंगे। यदि बीएसओडी सिस्टम को कुछ नुकसान पहुंचाता है तो यह आपको बैकअप रखने की अनुमति देगा। बीएसओडी simply by pressing CTRL+SCROLLLOCK+SCROLLLOCK कैसे उत्पन्न करें इस पर एक युक्ति दी गई है।

क्या कोई उत्पन्न करने के लिए एक विंडोज एपीआई है? नहीं, this article के अनुसार। फिर भी, अगर आप कुछ एपीआई को अमान्य डेटा के साथ कॉल करेंगे, तो वे अभी भी कर्नेल के अंदर एक दुर्घटना का कारण बन सकते हैं, जिसके परिणामस्वरूप आपका बीएसओडी होगा।

0

यदि आप कोड (ड्राइवर, आईओसीटीएल ...) लिखना नहीं चाहते हैं तो आप DiskCryptor का उपयोग कर सकते हैं। ध्यान दें कि कोई डिस्क एन्क्रिप्टिंग की आवश्यकता नहीं है। डीसी कंसोल का उपयोग कर एक बीएसओडी उत्पन्न

dcinst.exe -setup

और फिर:

बस ड्राइवर स्थापित करने की आवश्यकता

dccon.exe -bsod

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