सवाल मैं विंडोज़ को लटकाने (फ्रीज) कैसे उत्तेजित कर सकता हूं?


विंडोज़ की घटना में मुझे उपकरण व्यवहार की जांच करने की ज़रूरत है कठिन लटकता / फ्रीज (उदा। जमे हुए स्क्रीन, कोई एलईडी झपकी नहीं, इनपुट के लिए कोई प्रतिक्रिया नहीं, सहित Ctrl + Alt + Del, आदि।)। एक उचित समय में पर्याप्त प्रयोग करने के लिए मुझे इन लटककों को या तो प्रोग्रामेटिक रूप से या अन्यथा शुरू करने की आवश्यकता है।

मेरी दिलचस्पी है विंडोज 10 विशेष रूप से लेकिन अन्य संस्करणों के लिए किसी भी कामकाजी तरीके की सराहना की जाती है।

इस विषय पर मैंने जो भी खोज की है, वह आश्चर्यजनक रूप से मुझे इस बारे में चर्चा करने के लिए लाता है कि कैसे करें को खत्म इन स्थितियों, उन्हें उत्तेजित नहीं करते हैं। तो सवाल काफी अजीब लग सकता है।

प्रतिक्रिया: मैंने कई कोशिश की है व्यंजनों जवाब और टिप्पणियों में पेश किया। सबसे पहले, मुझे बीएसओडी लाने वाले दुर्घटनाओं में कोई दिलचस्पी नहीं थी (यही कारण है कि मैंने एक फ्रीज का वर्णन किया, न कि दुर्घटनाग्रस्त)।

मुझे कबूल करना होगा कि विंडोज 10 64-बिट ने कई तरीकों से अच्छा प्रतिरोध दिखाया है। यह लगभग किसी के साथ copes सीपीयू लोड विधि (सहित कांटा-बम, loops, आदि) काफी अच्छी तरह से। उन तरीकों से जो तत्काल त्रुटियों को उठाते हैं (अधिकांश NotMyFault hang विधियों) ओएस द्वारा रीबूट या शटडाउन (जो मैंने पीछा नहीं किया है) के साथ संभाला जाता है। सर्वोत्तम परिणाम प्राप्त हुए थे स्मृति रिसाव के तरीके मेरी गलती नहीं - रीबूट करने का कोई मौका नहीं के साथ असली फ्रीज।

अंत में, मैं माइक्रोसॉफ्ट द्वारा दस्तावेज की मात्रा से प्रभावित था जो विंडोज फ्रीज बनाने के बारे में बात करता है। ऐसा लगता है कि वे इस भाग को विपरीत (लड़ने वाले फ्रीज) से काफी बेहतर जानते हैं ;-)


180
2017-11-02 08:03


मूल


टिप्पणियां विस्तारित चर्चा के लिए नहीं हैं; यह बातचीत हुई है चैट करने के लिए चले गए। - DavidPostill♦
एक गणना है जो आप कैलक्यूलेटर का उपयोग करके कर सकते हैं, जो इसे पूरा होने तक सीपीयू पर कोर को फ्रीज करता है। एक ट्रैक्टर कोर मशीन पर आप इसे चार बार स्पष्ट रूप से करेंगे। लेकिन मैं अपने जीवन के लिए गणित समीकरण को याद नहीं कर सकता जो इसका कारण बनता है। - mickburkejnr
@mickburkejnr यह 100000 का कारखाना है। "वैज्ञानिक दृश्य" टाइप करें 100000 पर स्विच करें और "एन!" दबाएं। यह पुराने विंडोज संस्करणों पर अच्छी तरह से काम किया। आजकल आपको एक चेतावनी मिलेगी कि इस गणना में काफी समय लग सकता है और आप इसे रद्द कर सकते हैं। - duenni
बस इसका उपयोग करना शुरू करें। - samazi
उन्नयन स्थापित करना हमेशा मेरे लिए काम करता है। - Daniel R Hicks


जवाब:


शायद यह मदद कर सकता है: कीबोर्ड से सिस्टम क्रैश को मजबूर करना

यूएसबी कीबोर्ड के साथ, आपको कीबोर्ड-आरंभ किए गए क्रैश को सक्षम करना होगा   रजिस्ट्री रजिस्ट्री कुंजी में   HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ kbdhid \ पैरामीटर,   CrashOnCtrlScroll नामक एक मान बनाएं, और इसे एक के बराबर सेट करें   0x01 का REG_DWORD मान।

इन सेटिंग्स को प्रभावी होने के लिए आपको सिस्टम को पुनरारंभ करना होगा।

यह पूरा होने के बाद, कीबोर्ड क्रैश का उपयोग करके शुरू किया जा सकता है   निम्न हॉटकी अनुक्रम: दाएं सीटीआरएल कुंजी को दबाए रखें, और   दो बार स्क्रॉल लॉक कुंजी दबाएं।

या आप एक कांटा बम शुरू कर सकते हैं: यह SO सवाल देखें

वहाँ भी मेरी गलती नहीं

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


230
2017-11-02 08:29



फोर्कबॉम्ब और NotMyFault कोशिश की। लीक विधियों में से एक ऐसा लगता है जो मैं चाहता हूं। अन्य उपयोगी नहीं हैं क्योंकि वे रीबूट / शटडाउन को फ्रीज नहीं करते हैं। बहुत बहुत धन्यवाद। - hypers
CtrlScroll आपको एक बीएसओडी लाता है। चाहे वह डिबगिंग के लिए सिस्टम को फ्रीज करता है या बस इसे रीबूट करता है, बूट सेटिंग्स पर निर्भर करता है। - grawity
मेरे कंप्यूटर के पास Aannnddd duenni कभी अनुमति नहीं है। कभी। - corsiKa


ऐसा लगता है कि आप एक बाहरी डिवाइस की प्रतिक्रिया का परीक्षण कर रहे हैं जो एक ओएस को उत्तरदायी नहीं बना रहा है।

यदि आपका हार्डवेयर वर्चुअलाइज्ड विंडोज इंस्टॉलेशन से जुड़ा जा सकता है, तो आप वर्चुअल मशीन को जितनी बार चाहें रोक सकते हैं और फिर से शुरू कर सकते हैं। वर्चुअलबॉक्स (या अन्य डेस्कटॉप वर्चुअलाइजेशन) वातावरण में वांछित ओएस इंस्टॉल करें, वीएम को जो भी हार्डवेयर इंटरफेस इस्तेमाल किया जा रहा है (यूएसबी, ईथरनेट, या जो कुछ भी) का पर्दाफाश करें।

तब आप कर सकते हैं रोकें और फिर से शुरू करें इच्छानुसार वर्चुअल मशीन।


25
2017-11-05 03:16





कम से कम एक पुराने विंडोज संस्करण (कुछ साल पहले) के तहत निम्नलिखित काम किया:

मैंने अंतहीन पाश के साथ एक सी प्रोग्राम लिखा था:

while(1) {}

... तो मैंने टास्क मैनेजर में उस कार्यक्रम को "रीयलटाइम प्राथमिकता" दिया (एक एपीआई भी है जो यह कर सकती है)।

एक बहु-कोर सिस्टम पर मुझे यह कई बार करने की आवश्यकता होगी ताकि प्रत्येक कोर पर एक लूप चल रहा हो ...


24
2017-11-02 11:55



ऐसा करने के दौरान अपने सीपीयू को कम करने के लिए: डाल दें _mm_pause() से #include <immintrin.h> पाश में। यह एक सीपीयू हार्डवेयर निर्देश है, किसी भी प्रकार की "नींद" प्रणाली कॉल नहीं; जहां तक ​​ओएस का संबंध है, आपकी प्रक्रिया सुपरपीआई से अलग है; अंतर यह है कि लूप चलाने के दौरान सीपीयू कितनी शक्ति का उपभोग करता है। - Peter Cordes
मुझे यकीन नहीं है कि क्या यह विंडोज़ के कर्नेल मोड भागों को काम करने से रोकता है। - CodesInChaos
@CodesInChaos: अधिकांश कर्नेल थ्रेड सामान्य प्राथमिकता पर चलते हैं। इनमें से प्रत्येक सीपीयू और कर्नेल में भी बहुत कुछ किया जाता है। - Joshua
X86 असेंबली से जुड़ी एक और तकनीक (STI + HLT): stackoverflow.com/questions/3747847/... - meklarian
@meklarian: होना चाहिए CLI; HLT। संभवतः आपको इसे विशेषाधिकार प्राप्त मोड से करना है, हालांकि। सिद्धांत रूप में इसे अभी भी एनएमआई या इसी तरह से बचाया जा सकता है। - Nate Eldredge


सबसे मजबूत कर्नेल लटका (यानी, कोई माउस ट्रैकिंग, इत्यादि) तब होता है जब कोड कर्नेल मोड में एक अनंत लूप में इंटरप्ट से बंद हो जाता है।

डिवाइस ड्राइवर के साथ इसे हासिल करना संभव है, और इससे भी बेहतर, आप ड्राइवर को लिख सकते हैं ताकि यह आपके नियंत्रण में लटकना शुरू कर दे और रोक सके (मान लें कि अनंत लूप उस स्थिति का परीक्षण कर रहा है जिस पर आप नियंत्रण में हैं)।

इस ड्राइवर को कैसे लिखना और इंस्टॉल करना एक और प्रश्न या तीन का विषय होगा, लेकिन यह वह दृष्टिकोण है जो मैं लेता हूं।


10
2017-11-03 19:26





कृपया StackOverflow पर निम्न प्रश्न देखें जो आपके जैसा है: छोटी अवधि के लिए विंडोज़ फ्रीज कैसे करें

टीएल; इसका मतलब यह है कि ऐसा करने का कोई तरीका नहीं है (विश्वसनीय रूप से)।

फ्रीज करने या विंडोज़ को लटकने के बजाय, शायद आप अपने उपकरणों के साथ संचार को बाधित कर सकते हैं।

मुझे नहीं पता कि आपका उपकरण क्या है और आप इसे कैसे कनेक्ट करते हैं। यदि यह यूएसबी या ईथरनेट एडाप्टर है, तो, आप इसे डिवाइस मैनेजर में आसानी से निष्क्रिय कर सकते हैं या अनप्लग कर सकते हैं? यदि आप बलपूर्वक सिस्टम को क्रैश या लटकाते हैं तो आप अपने सिस्टम को विभिन्न तरीकों से नुकसान पहुंचा सकते हैं, इसलिए आप जो भी करते हैं उससे सावधान रहें।


9
2017-11-02 08:15



यदि मैं सॉफ़्टवेयर परिणामों से संतुष्ट नहीं हूं तो मैं उपकरण के भौतिक डिस्कनेक्ट पर विचार करूंगा। धन्यवाद। - hypers


कर्नेल डीबग मोड एक विकल्प नहीं है?

मैंने इसे विंडोज 7 में स्थापित किया है, और इस उत्तर में दिए गए निर्देश XP या बाद में निर्दिष्ट करते हैं, इसलिए इसे विंडोज 10 के साथ काम करना चाहिए।

मैंने इसे फायरवायर / 13 9 4 पर स्थापित करें, क्योंकि यह मेरी राय में सबसे आसान है। लेकिन आप भी कर सकते हैं इसे नेटवर्क पर करो या यु एस बी (तथा अधिक)।

मूल रूप से,

इन आदेशों को एक उन्नत प्रॉम्प्ट में चलाकर लक्ष्य कंप्यूटर सेट करें (एक चैनल चुनना n):

bcdedit /debug on
bcdedit /dbgsettings 1394 channel:n

बूट टैब पर जाने के समान ही है msconfig, और 'उन्नत' बटन का चयन करना:

enter image description here

enter image description here

फिर (लक्ष्य कंप्यूटर को रीबूट करने के बाद), लक्ष्य कंप्यूटर के WinDbg के समान गद्दे का उपयोग करके होस्ट कंप्यूटर पर WinDbg चलाएं।

फिर जब भी आप मेजबान कंप्यूटर से चाहते हैं तो कर्नेल निष्पादन को रोकना सिर्फ एक मामला है। यदि आप परीक्षण उपकरण में कुछ एसिंक्रोनस ऑपरेशन करते हैं जो इसे चला रहा है तो यह अन्य माध्यमों के रूप में प्रभावी होना चाहिए।


5
2017-11-08 19:47



दिलचस्प तरीका हालांकि एक दूसरे पीसी की जरूरत है। लेकिन जब संभव हो कोशिश करेंगे। - hypers


मुझे नहीं पता कि यह कुल फ्रीज के रूप में योग्य है क्योंकि माउस कर्सर अभी भी स्क्रीन पर चलता है, लेकिन यदि आपके पास डिवाइस I / O त्रुटियां अधिक विशेष रूप से हार्ड ड्राइव विफलता है तो Windows 7 UI अनुत्तरदायी हो जाता है। मेरी हार्ड ड्राइव में से एक स्व-रिपोर्टिंग स्मार्ट और विंडोज 7 के माध्यम से आसन्न ड्राइव विफलता थी, लेकिन जब भी मैंने उस पर सहेजी गई कुछ फ़ाइलों तक पहुंचने का प्रयास किया तो लटका दिया। यूआई लॉक हो जाएगा (माउस कर्सर आंदोलन को छोड़कर) 5 मिनट तक जब तक कि यह फ़ाइल को पढ़ न सके या टाइम-आउट के बाद ड्राइव को खाली कर दे। मुझे नहीं पता कि विंडोज टाइमआउट के लिए सिस्टम घड़ी का उपयोग करता है, लेकिन हो सकता है कि अगर आप किसी भी समय फ्रीज करते हैं तो आप टाइमआउट लंबाई बढ़ा सकते हैं? हो सकता है कि यह आपको वहां भाग लेगा, लेकिन 100% उत्तर जो आप ढूंढ रहे हैं।


2
2017-11-03 13:52





यह बग संसाधन थकावट के कारण विंडोज बहुत तेज़ी से फ्रीज करता है। भी पुन: उत्पन्न करने के लिए आसान है।

जैसा कि यह पता चला है, यह वास्तव में है ए   बग   कमांड लाइन कैसे (अधिक विशेष रूप से cmd.exe) पार्स बैच   फाइलें और सेवा प्रकार के हमले की त्वरित अस्वीकार कर सकती हैं; डाल   बैच फ़ाइल में निम्न पंक्ति (बिना किसी नई लाइन के) का उपभोग होगा   इस बग के कारण स्मृति की भारी मात्रा में बहुत जल्दी (ए के रूप में   उदाहरण):

^ nul<^

लंबी कहानी छोटी है, जब फ़ाइल के अंत में एक कैरेट है, वास्तविक   फ़ाइल का अंत 'अनदेखा' है और फ़ाइल हैंडल 'रीसेट' 0 पर है   (अनिवार्य रूप से) ताकि बैच को फिर से पार्स किया जा सके (विज्ञापन infinitum)।


2
2017-11-08 13:57





यहां मेरे डिबगिंग पाठों में उपयोग किए जाने वाले एप्लिकेशन का स्रोत कोड दिया गया है। यह दिखाता है कि उपयोगकर्ता मोड एप्लिकेशन कैसे एक प्रकार का डीओएस हमला कर सकता है।

आप देखेंगे कि आपका माउस कर्सर बहुत ही कम चलता है (एक बार मेरी मशीन पर हर ग्यारह सेकंड)। संभावित रूप से यदि आप लंबे समय तक प्रतीक्षा करते हैं तो आपका पीसी अभी भी पावर बटन पर प्रतिक्रिया करेगा।

यह एक अंतहीन पाश का उपयोग कर काम करता है और प्रक्रिया को सर्वोच्च प्राथमिकता निर्धारित करता है (0x100 "रीयलटाइम") और धागे को सर्वोच्च प्राथमिकता सेट करना (15 "नाजुक समय")। यह उनमें से 8 शुरू करेगा, जो i7 कंप्यूटर के लिए पर्याप्त है। यदि आपको और अधिक चाहिए, तो लूप को अनुकूलित करें। उनमें से अधिक संभावित रूप से चीजों को धीमा कर देंगे।

#include "stdafx.h"
#include <windows.h>
#include <string>
#include <sstream>
#include <iostream>

void WasteTime()
{
    int priority = 15;
    ::SetThreadPriority(::GetCurrentThread(), priority);
    while (true)
    {
    }
}

int _tmain(int argc, _TCHAR* argv[])
{
    ::SetPriorityClass(::GetCurrentProcess(), 0x100);
    for(int i=0; i<7; i++)
    {
        LPDWORD threadid = 0;
        ::CreateThread(NULL, 64*1024, (LPTHREAD_START_ROUTINE)&WasteTime, NULL, 0, threadid);
        ::Sleep(2000);
    }

    WasteTime();

    return 0;
}

2
2017-11-08 18:22



सावधान रहें कि इस कार्यक्रम ने सी ++ में व्यवहार को अपरिभाषित किया है, इसलिए कुछ अनुकूलन सेटिंग्स के तहत संकलक पूरी चीज़ को प्रतिस्थापित कर सकता है ExitProcess(0) - Ben Voigt
@BenVoigt उस मामले में (यानी g++) अगर -O0 पर्याप्त नहीं थे, शायद gcc -Q -O0 --help=optimizers | grep enabled  (और हाथों से जीवित अनुकूलन को अक्षम करना) हल हो सकता है ExitProcess(0) मुद्दा? - Hastur
@ बेनोवॉग: क्या आप विस्तारित कर सकते हैं, आप किस भाग को अपरिभाषित व्यवहार मानते हैं? - Thomas Weller
@BenVoigt IMHO संकलक केवल अनुकूलित कर सकते हैं return 0 बयान, क्योंकि यह के बाद मौजूद है while(true)। संकलक यह पता लगा सकता है कि यह एक पहुंच योग्य कथन है। - Thomas Weller
सी ++ भाषा मांग करती है कि प्रत्येक धागे अंततः प्रगति करता है, जिसे कई प्रकार के अवलोकन योग्य व्यवहार के संदर्भ में परिभाषित किया जाता है। क्योंकि अनंत लूप कभी भी अवलोकन प्रगति नहीं करता है, संकलक यह समझ सकता है कि यह नहीं पहुंचा है, और न केवल इसे हटाता है, लेकिन इसके ऊपर के सभी कोड निकटतम शाखा में वापस आते हैं। - Ben Voigt