2009-09-14 18 views
41

मैं सिर्फ नमक विश्व उदाहरण कर, एक्सकोड में कोको विकास के साथ शुरू कर रहा हूं। मैं "runtime debugging" अनुभाग का चरण 6 तक हूं, जोएक्सकोड डीबगर: यह केवल मुझे असेंबलर क्यों दिखा रहा है?

डीबगर टूलबार में चरण ओवर बटन का उपयोग करके, कोड के माध्यम से कदम उठाना शुरू करें। चूंकि कोड की प्रत्येक पंक्ति निष्पादित होती है, आप प्रोग्राम के राज्य की जांच कर सकते हैं। किसी चर के मान को कभी-कभी लाल रंग में खींचा जाता है यह इंगित करने के लिए कि अंतिम चरण में मान संशोधित किया गया था। ध्यान दें कि डीबगर संकेत रेखा को निष्पादित करने से पहले रोकता है। प्रत्येक विराम के बाद, आप अतिरिक्त ब्रेकपॉइंट जोड़ सकते हैं या डीबग> एप्लिकेशन को समाप्त करने के लिए पुनरारंभ करें और एक नया डिबगिंग सत्र शुरू कर सकते हैं।

अब मैं पिछले घंटे से अपने बालों को खींच रहा हूं, यह तथ्य यह है कि यह डीबगर केवल मुझे असेंबली कोड दिखाएगा। मैं मैन्युअल रूप से अपनी सोर्स कोड फ़ाइल का चयन कर सकता हूं, लेकिन जैसे ही मैं "स्टेप ओवर" पर क्लिक करता हूं, मैं असेंबलर व्यू में वापस आ गया हूं। मैं अपने जीवन के लिए नहीं समझ सकता कि कैसे असेंबलर को बंद करना है, और इसे मुझे अपना स्रोत कोड दिखाएं!

उत्तर

109

मैं जानता हूँ कि इस लेख में एक सौ साल पुराना है, लेकिन इस मामले में किसी को भी (के रूप में Xcode 3 के खिलाफ) कैसे और अधिक हाल Xcode संस्करणों में इस मुद्दे के समाधान के लिए सोच रहा है, तो आप पाएंगे उपयुक्त सेटिंग हमेशा लेबल दिखाएँ Disassemblyडीबग> Xcode 6 और ऊपर में डीबग कार्यप्रवाह के तहत। सुनिश्चित करें कि विकल्प चेक किया गया है।

Xcode 5 में, विकल्प दिखाएँ Disassembly चिह्नित किया गया जब डीबग> डीबग कार्यप्रवाह तहत डिबगिंग। सुनिश्चित करें कि "डिबगिंग दिखाएं जब डिबगिंग करें" अनचेक किया गया है।

Xcode 4 में वापस, दिखाएँ Disassembly डिबगिंग सेटिंग उत्पाद के तहत मिला था जब> डीबग कार्यप्रवाह। दोबारा, सुनिश्चित करें कि विकल्प अनचेक रहता है।

यह मैं भी पागल गाड़ी चला रहा था।

नोट: उपरोक्त जानकारी अभी भी Xcode के लिए मान्य है 9+। के रूप में Xcode के नए संस्करण जारी किया गया है मैं इस उत्तर के लिए अद्यतन लागू किया है। सौभाग्य से, एक्सकोड 6 (अब तक) के बाद से विकल्प अपरिवर्तित बनी हुई है।

+1

कैसे होगा Xcode 4.4 में की तरह इस सेटिंग को देखो? मैंने विकल्प को अनचेक किया है "डिबगिंग दिखाएं जब डिबगिंग करें", लेकिन अभी भी असेंबलर विंडो प्राप्त करें। – AlexR

+0

एक ही होना चाहिए, लेकिन ध्यान दें कि स्थिति @PeterHosey ऊपर उल्लेख है, सच रहने के भी। सुनिश्चित करें कि आप अपना स्रोत कोड देख रहे हैं, और डीबग प्रतीकों को छीन लिया नहीं गया है। –

+4

एक्सकोड 6 के बारे में क्या? अब यह "हमेशा डिससब्स दिखाएं" है, यह मेरे अंत में अनचेक है और यह बहुत गहरा जा रहा है। –

1

मैंने वास्तव में पोस्ट करने से पहले इसे बाहर निकाला, लेकिन मैं दूसरों को संभावित भविष्य के सिरदर्दों को बचाने के लिए चाहता था, (और अगर मैं बाद में भूल जाता हूं) क्योंकि मुझे स्टैक ओवरफ़्लो खोजकर इसका उत्तर नहीं मिला, लेकिन मुझे पता चला कि I'm not alone.

रन मेनू से, "डीबगर प्रदर्शन"> "स्रोत केवल", या "डीबगर प्रदर्शन"> "स्रोत और Disassembly"

10

वहाँ दो अन्य बातों के यकीन का बनाने के लिए कर रहे हैं:

  1. कि आप अपने कार्यों/विधियों में से एक को देख रहे हैं। यदि आप जिस स्टैक फ्रेम को देख रहे हैं वह ढांचे में से एक से एक फ़ंक्शन या विधि है, तो आप असेंबली देखने जा रहे हैं इससे कोई फर्क नहीं पड़ता कि आपके पास Xcode कॉन्फ़िगर किया गया है।
  2. कि आप एक डीबग बिल्ड चला रहे हैं। स्ट्रिप डीबग प्रतीकों (जैसे रिलीज बिल्ड में), और आप अपने कोड के लिए भी असेंबली देख रहे होंगे, इससे कोई फर्क नहीं पड़ता।
+0

मेरी समस्या है, लेकिन दिलचस्प जानकारी का समाधान नहीं था ... धन्यवाद – Suhaib

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