के कारण असफल होने वाले यूनिट परीक्षणों को डिबग करना, जब भी कोई यूनिट परीक्षण StackOverflowException
के कारण विफल हो जाता है तो इकाई परीक्षण प्रक्रिया तुरंत बाहर निकलती है - यह पता लगाने का एकमात्र तरीका क्या हुआ (जिसे मैं जानता हूं) एक क्रैश डंप डीबग करना है इकाई परीक्षण प्रक्रिया का पालन करके प्राप्त की सीढ़ियों यहाँस्टैक ओवरव्लो अपवाद
उस समय कि StackOverflowException
फेंक दिया गया था पर चल रहा था इकाई परीक्षण के नाम होने का सबसे आसान तरीका क्या है पाया? यहां तक कि जब इकाई परीक्षण डिबगिंग मैं ढेर और विजुअल स्टूडियो के निचले भाग में अपनी के रूप में वर्तमान इकाई परीक्षण के नाम खोजने के लिए संघर्ष कर रहा हूँ अभ्यस्त 'डिबगिंग विंडो क्योंकि इसकी बहुत बड़ी में पूरे ढेर दिखाया गया है।
वहाँ किसी तरह जो इकाई परीक्षण का संग्रह और दुर्घटना डंप डिबगिंग के बिना विफल रहा है पता लगाने के लिए है?
मुझे यकीन है कि क्या अपवाद छोटा है नहीं कर रहा हूँ। क्या आप घड़ी और/या इंटरमीडिएट विंडो में 'new System.Diagnostics.StackTrace (true) 'के साथ अपना स्वयं का स्टैकट्रैक बनाने का प्रयास कर सकते हैं? शायद यह आपको एक पूर्ण निशान प्रदान करेगा। – Caramiriel
@ करमीरिल रनिंग करते हुए कि डीबगिंग इंटरैक्टिव रूप से 'अभिव्यक्ति का मूल्यांकन नहीं कर सकता है क्योंकि वर्तमान धागा एक स्टैक ओवरफ्लो स्टेटस में है।', आप क्रैश डंप को डिबग करते समय तत्काल अभिव्यक्ति नहीं चला सकते क्योंकि प्रक्रिया वास्तव में उस बिंदु पर नहीं चल रही है। पूरे स्टैक ट्रेस को दिखाया नहीं गया है क्योंकि इसकी विशालता है। – Justin
@ जस्टिन: यदि आपका विजुअल स्टूडियो आर्किटेक्चर (उदाहरण के लिए x86) आपके एप्लिकेशन से मेल खाता है, तो आप तत्काल विंडो में '! Clrstack' टाइप करके एसओएस लोड कर सकते हैं और स्टैकट्रैक डंप कर सकते हैं। लगता है कि मेरे लिए काम कर रहा है। ('0028ed6c 00340147 ConsoleApplication45.Program.Rec() 0028edac 003400fb ConsoleApplication45.Program.Main (System.String [])') – Caramiriel