2011-11-30 13 views
28

अतीत में, पुराने और अच्छे एक्सकोड 3 के साथ, हर बार जब मुझे कोई दुर्घटना हुई, तो एक्सकोड दुर्घटनाग्रस्त होने वाली अपमानजनक रेखा पर रुक गया। यह अच्छा समय था, डीबग करने के लिए अच्छा है।एक्सकोड हमेशा एक दुर्घटनाग्रस्त होने के बाद main.m पर रोक रहा है

अब Xcode 4.2 के साथ, हर बार ऐप्लिकेशन क्रैश, यह main.m पर इस लाइन

int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate"); 

कि क्या दुर्घटना खड़ी कर रहा है करने के लिए कोई सुराग नहीं देता है पर रुकती है। समस्या किसी भी वर्ग में हो सकती है लेकिन जब यह दुर्घटनाग्रस्त हो जाती है तो यह हमेशा मुख्य.एम पर रुक जाएगी।

क्या यह सही ढंग से फिर से काम करने का एक तरीका है?

धन्यवाद

टिप्पणी: मैं इस से पहले कहा है पर इतना, लेकिन उस समय दिया समाधान संतोषजनक नहीं साबित हुई और समस्या बनी रहती है।

+0

काम करना चाहिए भविष्य में संदर्भ के लिए, एक ही सवाल फिर से पोस्ट नहीं करें। नई जानकारी प्रदान करने के लिए अपना मूल प्रश्न संपादित करें और इसे वापस पृष्ठ पर वापस लाएं। –

+0

मैंने पुराने को हटाने के लिए कहा है। – SpaceDog

उत्तर

42

वे व्यवहार बदल गया है, का पालन करें this tutorial to break on all exceptions

संपादित करें:(लिंक सड़ सकता है, तो मैं जानकारी यहाँ नकल होगा)

Xcode 4.2 में छिपे रत्नों में से एक "अपवाद है ब्रेकपॉइंट "सुविधा। एक बार जब आप इसे सक्षम कर देते हैं, तो आपका डिबगिंग जीवन बहुत आसान हो जाता है क्योंकि जब भी आपके ऐप में कोई अपवाद फेंक दिया जाता है, तो एक्सकोड कोड की रेखा लाएगा जिससे अपवाद होता है। यह विशेष रूप से उपयोगी होता है यदि आपकी कॉल स्टैक विंडो खाली है (जो मैंने कभी-कभी आईओएस ऐप्स पर काम करते समय देखा है)। आउटपुट फलक में एक संक्षिप्त त्रुटि संदेश पर निर्भर होने के बजाय, जिसमें अपवाद के प्रकार और उसके त्रुटि संदेश से अधिक शामिल नहीं है, आपको यह देखने के लिए मिलता है कि समस्या कहां है!

आप नीचे बाएँ कोने में ब्रेकप्वाइंट नेविगेटर फलक खोलने, और एक्स बटन पर क्लिक करके एक अपवाद ब्रेकप्वाइंट जोड़ सकते हैं:

"अपवाद ब्रेकप्वाइंट जोड़ें ..." मेनू आइटम क्लिक करने के बाद आप इस ब्रेकपाइंट विन्यास दृश्य दिखाई देगा खोल:

संपन्न बटन पर क्लिक करें और आप करेंगे ख की अपनी सूची में नया अपवाद ब्रेकप्वाइंट reakpoints। आप करना चाहते हैं अपने Xcode कार्यस्थानों के सभी अपवाद ब्रेकप्वाइंट, राइट-क्लिक करें शामिल करें (Ctrl + क्लिक करें) खोलें और "ब्रेकप्वाइंट आगे बढ़ने के लिए" मेनू आइटम: "उपयोगकर्ता" क्लिक करने के बाद

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

मुबारक डिबगिंग!

+13

धन्यवाद। वे पागल होना चाहिए। उस परिवर्तन का क्या मतलब है? डेवलपर्स के जीवन को दुखी बनाओ? धन्यवाद!!!!!!!!!!!!!!!! – SpaceDog

+0

इसे xcode पर स्थायी के रूप में सेट करने का कोई भी तरीका है? – SpaceDog

+0

इसे "उपयोगकर्ता" पर ले जाने के बारे में ट्यूटोरियल के अंत में थोड़ा सा स्थायी बनाता है – BarrettJ

5

बस मेरे लिए काम करने वाले चरणों का प्रयास करें।

  1. ओपन प्राथमिकताएं, व्यवहार टैब का चयन करें।
  2. बाएं कॉलम से "अप्रत्याशित रूप से बाहर निकलें" का चयन करें।
  3. "वर्तमान दृश्यों के साथ डीबगर दिखाएं" का चयन करें।

दुर्भाग्य से इस संपादक में वापस main.m में वापस लाई है फिर अब :) आप नीचे दिए गए चरणों का पालन करें

  1. प्राथमिकताएं खोलें, व्यवहार टैब का चयन करने की जरूरत है।
  2. बस "रन पूरा करता है"
  3. वहाँ "दिखाएँ" लाइन लगाने के लिए जाने के लिए और लटकती मेनू में "वर्तमान" पर जाने के लिए लक्ष्य को संशोधित चेकबॉक्स
  4. क्लिक उसी पंक्ति में।

यह

+1

वाह। अगली रिलीज ऐप्पल को कॉन्फ़िगर करना कठिन बनाना चाहिए। धन्यवाद – SpaceDog

+0

हाहा! उनके पास अभी भी ** सटीक ** एक ही बग है। यह सिर्फ उस फ़ाइल पर कूदने के लिए समझ में नहीं आता है जो आपको कुछ भी नहीं बताता है। अगर मैं सभी बक्से अनचेक करता हूं, तो मुझे लगता है (जैसे ऐप्पल ने मुझे सिखाया) कि ऐसा नहीं होता है। स्थिर में कुछ होता है। * "यदि उपयोगकर्ता इस घटना के लिए कुछ भी नहीं करना चाहता है, तो एक यादृच्छिक अर्थहीन फ़ाइल पर जाएं" * दुखद। –

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

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