मेरे पास ब्रेकपॉइंट सेट हैं लेकिन Xcode उन्हें नज़रअंदाज़ करता है।
मेरे पास ब्रेकपॉइंट सेट हैं लेकिन Xcode उन्हें नज़रअंदाज़ करता है।
जवाबों:
सबसे पहले, मैं 100% सहमत हूं कि पहले के लोगों ने कहा कि बंद करें Load Symbols Lazily
।
मेरे पास जोड़ने के लिए दो और चीजें हैं।
(मेरा पहला सुझाव स्पष्ट लगता है, लेकिन पहली बार किसी ने मुझे यह सुझाव दिया, मेरी प्रतिक्रिया इन पंक्तियों के साथ गई: "चलो, कृपया, आप वास्तव में सोचते हैं कि मैं बेहतर नहीं जानता ...... ओह।"
सुनिश्चित करें कि आपने गलती से "सक्रिय बिल्ड कॉन्फ़िगरेशन" को "रिलीज़" पर सेट नहीं किया है।
अपनी परियोजना के चित्रमय वृक्ष प्रदर्शन में "लक्ष्य" के तहत, अपने लक्ष्य पर राइट क्लिक करें और "जानकारी प्राप्त करें।" "Generate Debug Symbols" (या समान) नाम की प्रॉपर्टी देखें और सुनिश्चित करें कि यह CHECKED (उर्फ ON) है। इसके अलावा, आप खोज (टारगेट >> गेट इंफो) में "डिबग इन्फॉर्मेशन फॉर्मेट" नामक एक संपत्ति और इसे "dsym फाइल के साथ बौना" करने की कोशिश कर सकते हैं।
लक्ष्य के तहत कई अन्य संपत्तियां हैं >> जानकारी प्राप्त करें जो आपको प्रभावित कर सकती हैं। कोड को अनुकूलित या संपीड़ित करने जैसी चीजों के लिए देखें और उस सामान को बंद कर दें (मुझे लगता है कि आप डिबग मोड में काम कर रहे हैं, ताकि यह बुरी सलाह न हो)। इसके अलावा, प्रतीकों को छीनने जैसी चीजों को देखें और सुनिश्चित करें कि वह भी OFF है। उदाहरण के लिए, डिबग लक्ष्य के लिए "स्ट्रिप लिंक्ड उत्पाद" को "नहीं" पर सेट किया जाना चाहिए।
Xcode 7 में, मेरे लिए क्या काम किया गया था:
1) सुनिश्चित करें कि लक्ष्य -> स्कीम -> रन - डिबग मोड में है (जारी किया गया था)
2) नीचे दिए गए विकल्प "डिबग एक्जीक्यूटेबल" को देखना सुनिश्चित करें:
मैं सिर्फ इसी मुद्दे (फिर से) कर रहा था। ट्रिपल-चेक "लोड प्रतीकों लेज़ीली" और स्ट्रिपिंग और डीबग इन्फो जनरेशन फ्लैग के बाद, मैंने निम्न कार्य किया:
आप खोजक में एक ही कार्य को .xcodeproj बंडल पर राइट-क्लिक करके या "शो पैकेज सामग्री" चुनकर पूरा कर सकते हैं।
जब मैंने Xcode को फिर से शुरू किया, तो मेरी सभी विंडो डिफॉल्ट पोजिशन आदि के लिए रीसेट हो गईं, लेकिन ब्रेकप्वाइंट ने काम किया!
कोई दूसरा कारण
DeploymentPostprocessing
BuildSettings में NO पर सेट करें - यहां विवरण
संक्षेप में -
इस सेटिंग को सक्रिय करना इंगित करता है कि बायनेरिज़ को छीन लिया जाना चाहिए और फ़ाइल मोड, स्वामी और समूह की जानकारी मानक मानों पर सेट की जानी चाहिए। [DEPLOYMENT_POSTPROCESSING]
YES
केवल मेरी थी subproject
और फिर ब्रेकप्वाइंट में काम नहीं किया subprojects
। और NO
यह स्थापित करने के बाद , यह एकदम सही था!
इस पोस्ट को देखें: एक्सकोड में ब्रेकप्वाइंट काम नहीं कर रहा है? । आप "डिबग" के बजाय "रन" पर जोर दे सकते हैं जिस स्थिति में आपका प्रोग्राम जीडीबी की मदद से नहीं चल रहा है, जिस स्थिति में आप ब्रेकपॉइंट के काम करने की उम्मीद नहीं कर सकते हैं!
इसके लिए संभावित समाधानों में से एक हो सकता है .... उत्पाद पर जाएं> योजना> संपादित करें योजना> .. रन के तहत> जानकारी> निष्पादन योग्य चेक "डिबग निष्पादन योग्य"।
यह मुझे आधे निराशाजनक दिन के लिए Xcode 9 में था। यह एक साधारण डिबग सेटिंग हो गया।
डीबग करें> डीबग वर्कफ़्लो पर जाएं और सुनिश्चित करें कि 'ऑलवेज शो डिसएस्पेश' बंद है। इतना ही आसान। :(
इस समस्या के साथ इस पृष्ठ पर आया (Xcode 6 में सी कोड ब्रेकपॉइंट पर नहीं रुक रहा है) और ऊपर दिए गए समाधानों में से कोई भी काम नहीं किया गया (परियोजना व्यावहारिक रूप से बॉक्स से बाहर, सेटिंग्स-वार, इसलिए किसी भी डीबगर सेटिंग्स के लिए बहुत कम मौका है) गलत मान पर सेट हो) ...
समस्या को कम करने में काफी समय बर्बाद करने के बाद, मैंने आखिरकार अपराधी को (मेरे कोड के लिए) समझ लिया:
Xcode (/ LLVM) बाइसन-स्टाइल #line
प्रीप्रोसेसर कमांड को पसंद नहीं करता है ।
उन्हें हटाने से समस्या ठीक हो गई (डिबगर मेरे ब्रेकपॉइंट पर रुक गया)।
मुझे Xcode (2.4.1) में ब्रेकप्वाइंट के साथ बहुत सारी समस्याएं हैं। मैं एक परियोजना का उपयोग करता हूं जिसमें बस अन्य परियोजनाएं शामिल हैं (जैसे विज़ुअल स्टूडियो में समाधान)। मुझे कभी-कभी लगता है कि ब्रेकपॉइंट बिल्कुल भी काम नहीं करता है जब तक कि शुरुआती प्रोजेक्ट में कम से कम एक ब्रेकपॉइंट सेट न हो (यानी एक मेरे कोड के लिए प्रवेश बिंदु वाला)। यदि एकमात्र ब्रेकप्वाइंट "निचले स्तर" प्रोजेक्ट्स में हैं, तो उन्हें केवल अनदेखा कर दिया जाता है।
यह भी लगता है जैसे कि Xcode केवल ब्रेकपॉइंट ऑपरेशन को सही तरीके से हैंडल करता है यदि आप ब्रेकपॉइंट पर कार्य करते हैं, तो आप उस प्रोजेक्ट में हैं जिसमें स्रोत लाइन ब्रेकपॉइंट है।
यदि मैं किसी अन्य प्रोजेक्ट के माध्यम से ब्रेकप्वाइंट को हटाने या अक्षम करने का प्रयास करता हूं, तो कार्रवाई कभी-कभी प्रभावी नहीं होती है, भले ही डिबगर यह इंगित करता है कि यह है। तो मैं खुद को विकलांग ब्रेकपॉइंट्स पर ब्रेकिंग, या एक (अब अदृश्य) ब्रेकपॉइंट पर पाऊंगा जो मैंने पहले हटा दिया था।
मैंने अपने ब्रेकप्वाइंट काम नहीं किए हैं और फिर उन्हें फिर से काम करने के लिए बिल्ड / क्लीन सभी लक्ष्य बनाए हैं।
मुझे लगता है कि डिवाइस संस्करण और Xcode के बीच समस्या असंगत हो सकती है। IOS 5.0.1 पर चलने वाले अपने iPhone 4S पर डिबग करने का प्रयास करते समय मुझे यह समस्या है। मैं अभी भी Xcode 3.2.5 का उपयोग कर रहा हूं। मुझे आयोजक विंडो में "विकास के लिए इस उपकरण का उपयोग करें" का चयन करके हैंडसेट से प्रतीक मिला। यह फोन हालांकि ब्रेकपॉइंट से इनकार करता है। मेरा पुराना 3GS ब्रेकपॉइंट होगा , वही Xcode प्रोजेक्ट, वही सेटिंग्स ... सिर्फ अलग डिवाइस और यह iOS 4.0 चला रहा है। मुझे लगता है कि यह 3.2 में एक Xcode बग है, क्योंकि मेरे पास प्रतीक हैं। अब तक यहां पोस्ट किए गए सभी समाधानों की कोशिश करने के बाद, मैंने तय किया है कि मेरी समस्या का समाधान आगे बढ़ना है और XCode 4 में अपग्रेड करना है। शायद आप प्रभावी ढंग से डिबग नहीं कर सकते हैं जब तक कि आपका आधार एसडीके कम से कम उतना उच्च नहीं है जिस पर सिस्टम डिबग करना है। शायद यह स्पष्ट है - क्या कोई पुष्टि कर सकता है?
संपादित करें: मैं अपडेट करूंगा जब मैं पुष्टि कर सकता हूं कि यह सच है।
XCode 6.3.1 में मेरे साथ भी ऐसा ही हुआ है। मैं इसे ठीक करने में कामयाब रहा:
उस परिवर्तन को करने के बाद, मैं प्रोजेक्ट पर वापस जाएँ ब्रेकपॉइंट्स विकल्पों को सेट करता हूं , और शेयर ब्रेकप्वाइंट को अचयनित करता हूं विकल्प को , और फिर भी काम करता है।
मुझे ठीक से पता नहीं है, लेकिन इससे मेरे ब्रेकपॉइंट वापस मिल जाते हैं।
Xcode 4 में
- Product menu > Manage Schemes
- Select the scheme thats having debugging problems (if only one choose that)
- Click Edit button at bottom
- Edit Scheme dialog appears
- in left panel click on Run APPNAME.app
- on Right hand panel make sure youre on INFO tab
- look for drop down DEBUGGER:
- someone had set this to None
- set to LLDB if this is your preferred debugger
- can also change BUILD CONFIGURATION drop down to Debug
- but I have other targets set to AdHoc which debug fine once Debugger is set
मुझे समस्या मिल गई। किसी तरह " डिसबैशिंग को दिखाएं जब डिबगिंग " मेरे एक्सकोड में सक्षम किया गया था जो उस समस्या को बनाता है। जब मैंने इसे निष्क्रिय कर दिया, तो मेरे सभी डिबगर मेरे स्रोत कोड में बंद हो गए।
आप इसे नीचे पा सकते हैं: Product->Debug Workflow->Show Disassembly
डिबगिंग करते समय।
यदि ब्रेकपॉइंट के बजाय बाकी सभी विफल हो जाते हैं, तो आप निम्न फ़ंक्शन को कॉल कर सकते हैं:
void BreakPoint(void) {
int i=1;
#if !__OPTIMIZE__
printf("Code is waiting; hit pause to see.\n");
while(i);
#endif
}
फिर से शुरू करने के लिए, मैं स्वयं को शून्य पर सेट करता हूं, फिर फिर से शुरू करें बटन दबाएं।
मैंने उपरोक्त सभी चीजों की कोशिश की लेकिन मेरे लिए केवल एक बार डिबगिंग ब्रेकपॉइंट को निष्क्रिय करना और फिर उन्हें काम करना सक्रिय कर दिया।
अपने ब्रेक पॉइंट को सेट करते समय, राइट क्लिक करें और आपको ब्रेक ऑप्शन को कैसे संभाला जाए (लॉग वेरिएशन और जारी रखें, पॉज निष्पादन आदि) के बारे में कई विकल्प मिलने चाहिए।
यह भी सुनिश्चित करें कि डिबग वरीयताओं में "लोड सिंबल लाज़िली" का चयन नहीं किया गया है।
(Xcode 3.1 पर लागू होता है, पिछले / भविष्य के संस्करणों के बारे में निश्चित नहीं है)
यह भी सुनिश्चित करें कि ऐप का AppStore वितरण डिवाइस पर भी स्थापित नहीं है।
Xcode में ब्रेकप्वाइंट के लिए 3 राज्य प्रतीत होते हैं। यदि आप उन पर क्लिक करते हैं तो वे विभिन्न सेटिंग्स से गुजरेंगे। डार्क ब्लू सक्षम है, ग्रे आउट अक्षम है और मैंने कभी-कभी हल्का नीला देखा है, जिससे मुझे गहरे नीले रंग में जाने के लिए फिर से ब्रेकपॉइंट पर क्लिक करने की आवश्यकता हुई।
इसके अलावा यह सुनिश्चित करें कि आप इसे डिबग कमांड के साथ लॉन्च कर रहे हैं न कि रन कमांड। आप ऐसा कर सकते हैं कि रन मेनू से विकल्प + कमांड + रिटर्न, या गो (डीबग) विकल्प मार कर।
मेरे पास Xcode 3.2.3 SDK 4.1 ब्रेकप्वाइंट यादृच्छिक पर विफल होगा। मैंने पाया है कि यदि आप बिल्ड को साफ करते हैं और निर्माण के तहत टच कमांड का उपयोग करते हैं तो वे फिर से काम करते हैं।
यहाँ मैंने एक अस्पष्ट बात की है: यदि आप एक साझा पुस्तकालय (या एक प्लगइन) पर काम कर रहे हैं, तो आपके ब्रेकप्वाइंट स्टार्टअप पर पीले हो जाएंगे, जिससे आपको निराशा में अपने कीबोर्ड को हथौड़ा करना होगा और डिबग प्रक्रिया को मारना होगा। खैर, ऐसा मत करो! जब तक ऐप लाइब्रेरी को लोड नहीं करता, तब तक प्रतीक लोड नहीं होंगे, जिस बिंदु पर ब्रेकपॉइंट मान्य हो जाएंगे। मैं एक ब्राउज़र प्लगइन के साथ इस समस्या में भाग गया ... BPs को तब तक अक्षम किया गया जब तक कि मैंने अपने प्लगइन को तत्काल पृष्ठ पर वापस नहीं ला दिया।