2011-09-14 12 views
9

ठीक है, मैं इस मल्टी-थ्रेडेड सी ++ प्रोग्राम है कि मैं विजुअल स्टूडियो 2008कार्यक्रम बंद होने से ठीक पहले मैं विजुअल स्टूडियो ब्रेक कैसे बना सकता हूं?

कभी कभी में डिबग करने की कोशिश मिल गया (आमतौर पर संगणना में से एक और दो घंटे के बीच एक यादृच्छिक समय के बाद), कार्यक्रम बंद हो जाता है, के बाद डिबग मोड बाहर निकालता है डीबग विंडो में लिखना:

The thread 'Win32 Thread' (0x1560) has exited with code 3 (0x3). 
The thread 'Win32 Thread' (0x5fc) has exited with code 3 (0x3). 
... 

और इसी तरह के सभी धागे शामिल हैं।

AFAIK निकास कोड 3 कुछ की विफलता को इंगित करता है, मैं उम्मीद करता हूं कि वीएस अपवाद को रोकें और इसे तोड़ दें ताकि मैं यह देख सकूं कि त्रुटि क्या है और इसके कारण क्या हुआ।

मैंने दृश्य स्टूडियो डीबग मेनू में सभी अपवाद को सक्रिय करने की कोशिश की, लेकिन इसमें कुछ भी नहीं बदला।

क्या वीएस को बताने का कोई तरीका है कि जब यह असामान्य निकास होता है तो मुझे ब्रेक चाहिए?

+0

मेरे पास उनमें से एक था, और रिलीज मोड में इसे समझ नहीं पाया। डीबग मोड में चलते समय, * डीबगर संलग्न * के साथ, यह सिर्फ एक सादा और सरल शून्य सूचक विकृति हो गया, लेकिन किसी भी तरह यह डीबगर संलग्न नहीं होने पर अपवाद के रूप में रिपोर्ट किया गया था। –

उत्तर

11

मेरा अनुमान है: आप एक दावा विफलता मार रहे हैं और सीआरटी संदेश विंडो नहीं बना सकता (किसी कारण से)। यह एक निकास (3) कॉल की ओर जाता है। मुझे यकीन नहीं है कि वह उस निकास कोड के साथ सभी धागे को मार देगा। एक बार कुछ गलत होने के बाद शायद आपके सभी धागे उसी तरह विफल हो रहे हैं।

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

+0

ऐसा लगता है कि आप सही थे, एक अलग धागे में एक दावा मारा गया था। मैं अंत में इस बग से छुटकारा पा लिया, धन्यवाद :) – Louen

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

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