में केवल एक थ्रेड को डीबग करने के लिए कैसे करें, मैं डीबगिंग के दौरान केवल एक थ्रेड के निष्पादन का पालन करने में सक्षम होना चाहता हूं। मैं थ्रेडपूल का उपयोग करता हूं ताकि डीबगर थ्रेड के बीच स्विचिंग रखता है और इससे डिबगिंग बहुत असहज हो जाती है।विजुअल स्टूडियो
पढ़ना:
मैं एक समाधान है जो सशर्त breakpoints (धागे के नाम के आधार पर) है मिलता है। हालांकि, मैं नहीं कह सकता कि "थ्रेड # 3" हमेशा रोचक मामले का इलाज करेगा, इसलिए मुझे प्रत्येक निष्पादन के लिए स्थिति बदलनी होगी। बहुत ज्यादा काम।
एक और समाधान फ्रीज/थॉ फीचर का उपयोग केवल मेरे रोचक धागे को चलाने के लिए करना है। हालांकि, इससे कुछ जानकारी अनुपलब्ध होती है क्योंकि सभी धागे रोक दिए जाते हैं।
अब मैं जो उपयोग कर रहा हूं वह प्रोग्राम को तब तक चलाने के लिए है जब तक कि मैं ब्रेकपॉइंट नहीं ले जाता, जहां मुझे अच्छे धागे में होना सुनिश्चित है। फिर मैं थ्रेडपूल के सभी अन्य धागे को रोकता हूं और निष्पादन को फिर से शुरू करने का प्रयास करता हूं। यदि कार्यक्रम अटक जाते हैं, तो मैं रोकता हूं, और वर्तमान धागे को पिघला देता हूं।
आदर्श समाधान सही धागा ढूंढना, इसे ध्वजांकित करना और फिर विजुअल स्टूडियो को कहना होगा: "केवल तभी तोड़ें जब वर्तमान धागा ध्वजांकित किया गया हो"।
क्या यह भी संभव है?
तो थ्रेड के लिए मानदंड क्या है? – abatishchev
मानदंडों को रोक दिया जाएगा धागा ध्वजांकित किया गया है – kamaradclimber
अलगाव में अपना कोड परीक्षण करें। उदाहरण के लिए यूनिट परीक्षण के साथ। फिर आपको केवल थ्रेड इंटरैक्शन को डीबग करना होगा, डिबगिंग की तरह जहां आप * थ्रेड को फ्रीज नहीं करना चाहते हैं। –