2010-07-12 26 views
11

मैं मैं Xcode में लिख रहा हूँ एक iPhone अनुप्रयोग डिबगिंग रहा हूँ, लेकिन कभी कभी अब डिबगर (जो GDB है) एक बहुत धीमा कर देती है (एक कदम-दर-कदम डिबगिंग कर रही है) है और हो जाता है अनुत्तरदायी कभी कभी, कभी कभी यह सामान्य करने के लिए हो जाता है वापस करने के बाद और जारी है और दूसरी बार यह हमेशा के लिए उस तरह रहने या संदेश कंसोल में प्रकट होता है (स्टेपिंग-इन में, कदम-ओवर, कदम-आउट के लिए माउस नहीं क्लिक करने योग्य हैं): "टाइम आउट हो गया" (या कुछ समान) और मैं अपने सीपीयू को गतिविधि मॉनीटर से 9 0% तक देख सकता हूं। एक कामकाज के रूप में मैं उस कोड की रेखा के बाद ब्रेकपॉइंट डालता था जिसमें मुझे रूचि थी और बस 'जारी रखें' के साथ 'जारी रखें' (ऐसा करने से यह पूरी तरह से ठीक और तेज़ चलता है)। क्या यह कोड निर्भर हो सकता है? क्या कोई तरीका है कि मैं डीबगर (व्यवहार) डीबग कर सकता हूं?Xcode डिबग धीमी गति से और laggy

अद्यतन: पूरा संदेश

Timed out fetching data. Variable display may be inaccurate. 

इसके लिए Googling मैं पता चला कि यह तब होता है जब Xcode gdb डेटा formatters अंदर देखने के लिए कोशिश कर रही है। किसी ने भागो निष्क्रिय करने के लिए> वेरिएबल देखें> उपयोग डेटा फ़ॉर्मेटर सुझाव (xcode 3.2 में, पिछले मैं लगता है कि यह Debug- है> चर देखें> डाटा formatters सक्षम) है और यह मेरे लिए बहुत काम करने के लिए (अब तक) अब मैं लगता है तो पूछ रहा हूँ: क्यों? : डी

UPDATE2: इस कोड के एक विशिष्ट भाग पर रोक से डिबगर हल, लेकिन यह एक और फोन करने में (एक ही संदेश के साथ) रुक जाता है stil। मुझे ऐसा लगता है कि इस (NSEntityDescription*)entityForName: inManagedObjectContext:

Update3 जैसे कुछ CoreData एपीआई शामिल है: यह सबसे अच्छा NSEntityDescription कैश करने के लिए होगा उस समय एक नया बनाने की बजाय?

+0

क्या यह आपके कोड के सभी स्थानों पर होता है? क्या आप जांच सकते हैं कि क्या कोड कंप्यूटिंग का उपभोग करते हैं? मैं इससे पहले कभी पीड़ित नहीं हूं। आपके हार्डवेयर विवरण, आपके वर्तमान मैक ओएस और आपके वर्तमान एक्सकोड के बारे में कैसे? – vodkhang

+0

मैक ओएस एक्स एसएल 10.6.4 के साथ 200 9 आईमैक पर आईफोन एसडीके 4 के साथ एक्सकोड 3.2.2 चलाता हूं। अब मैं कोड के दूसरे टुकड़े पर कुछ परीक्षण चलाऊंगा, लेकिन उस विशिष्ट टुकड़े पर यह हमेशा इस तरह से व्यवहार नहीं करता है। – rano

+0

यहां एक विशिष्ट संदेश है: "डेटा लाने में समय समाप्त हो गया। परिवर्तनीय प्रदर्शन गलत हो सकता है।" – rano

उत्तर

0

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

आशा है कि इससे मदद मिलती है!

+0

यह इंस्ट्रूमेंट्स के अंदर सामान्य लगता है। जैसा कि मैंने पोस्ट में कहा है, मैंने देखा है कि यह कोर डेटा एपीआई के साथ होता है। – rano

0

मैं एक ही समस्या थी और मैं इसे हल विकल्प "भागो" अक्षम करने - Xcode में "सक्षम/अक्षम गार्ड alloc"। अब यह बहुत तेज़ काम करता है! जांचें कि क्या आपके पास यह विकल्प सक्षम है और इसे अक्षम करें।

उम्मीद है कि यह मदद करता है! : डी

+0

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

0

मैं भी रूप में जल्द ही एक ही समस्या का सामना करना पड़ा है के रूप में मैं Xcode 3.2 में चले गए। मैं एक्सकोड 3.0 और 2.0 का उपयोग कर रहा हूं, मैंने कभी भी उन एसडीके में इस समस्या का सामना नहीं किया। तो मुझे लगता है कि यह नया एसडीके के साथ एक मुद्दा है।

0

आप कंसोल के लिए सामान की एक बहुत कुछ लिख रहे हैं? यह मेरे अनुभव में सब कुछ धीमा कर देता है।

+0

ehm यह मामला नहीं है, अगर आप – rano

+1

पर ध्यान से पढ़ते हैं, लेकिन मैं उन लोगों को संकेत दूंगा कौन * कंसोल पर लिख रहा है: कंसोल में सक्रिय खोज होने से वास्तव में चीजें धीमा हो जाती हैं। जब भी आप इसका उपयोग नहीं कर रहे हों तो खोज लाइन बंद करें। (और जब प्रोग्राम सक्रिय रूप से कंसोल पर लिख रहा है तो खोज लाइन को कभी भी खोलने के लिए बहुत मेहनत करें - इसे गंभीरता से दबाया जा सकता है।) –

0

मैं एक्सकोड डीबगिंग के लिए बहुत नया हूं, लेकिन मेरे शोध करते समय मैंने this question पर ठोकर खाई जो आपके मुद्दे के लिए उपयोगी हो सकती है।

असल में वहां दो लोग हैं जिनके पास एक्सकोड डीबगिंग के साथ कई समस्याएं थीं और ओपी ने एक साफ इंस्टॉल के माध्यम से अपना मुद्दा हल किया।का हवाला देते हुए LucasTizma के 4 संपादित करें:

अंत डिवाइस डिबगिंग काम करने के लिए गया था। मुझे एहसास है कि मेरे डिवाइस पर निम्न-स्तर समस्याएं पैदा कर रहा था ... कुछ भी मैंने अपने सिस्टम पर काम नहीं किया था। हालांकि, मैंने पर एक अन्य सिस्टम और डिवाइस डिबगिंग पर उसी कोड (उसी केबल के साथ) पर दोषपूर्ण ढंग से काम किया है। सीधे के बाद, डिवाइस डिबगिंग ने मेरी मूल मशीन पर पर काम करना शुरू किया, मुझे पर ले जाने का मानना ​​है कि कुछ अजीब हार्डवेयर ध्वज खराब हो गया था और किसी भी तरह दूसरी मशीन पर "रीसेट" किया गया था। किसी भी मामले में, यह अब काम करता है।

+0

जो डिवाइस-डिबगिंग के बारे में नहीं है लेकिन सिम्युलेटर-डिबगिंग है। इसके अलावा इसमें कुछ कम या कम सख्त स्थितियां हैं जिनके तहत यह प्रश्न – rano

+0

@rano पर सहमत है जैसा कि मैं सहमत हूं ... जब तक यह मुझे संकेत नहीं देता है तो एक्सकोड में कुछ अजीब बग हैं या यह उपयोग करने के लिए उतना आसान नहीं है जितना कि विज्ञापित, जो लोगों को यह सोचने के लिए प्रेरित करता है कि यह छोटी है और इसे "रीसेट" करने से यह ठीक हो जाता है। मुझे लगता है कि यहां मेरा मुद्दा यह था कि आप इसे आजमाएं और कम से कम एक अलग और साफ मशीन पर इसे कॉन्फ़िगर करें और देखें कि आपकी समस्या बनी रहती है या नहीं। – cregox

+0

@Casas मैंने पहले से ही एक नई मशीन पर नहीं होने के बावजूद इसे साफ करने और इंस्टॉल करने का प्रयास किया है क्योंकि मेरे पास केवल यह है: डी – rano

1

मैं एक ही मुद्दा था और सेब की चर्चा पर कुछ संबंधित जवाब मिला: समस्याओं की

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

+1

दिलचस्प लगता है, क्या आप अपने स्रोत को लिंक कर सकते हैं? – rano

1

तो इस के लिए कोई जवाब नहीं है? स्वरूपण को बंद करने के एक छोटे से परीक्षण में मदद मिली हो सकती है (लेकिन लक्षण इतना यादृच्छिक है कि किसी भी निश्चितता के साथ कहना मुश्किल है)। और डिबगर बिना स्वरूपण के लगभग बेकार है।

0

योजना में 'क्यूई डिबगिंग' सक्षम होने पर मैंने बहुत धीमी डीबगिंग देखी है। यदि आपको कतार डीबगिंग की आवश्यकता नहीं है, तो इसे अक्षम करने पर विचार करें।

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