2009-09-03 9 views
9

डीबग करते समय कोई स्थानीय प्रतीक नहीं है मेरे पास मैक ओएस एक्स 10.5 के लिए एक प्रोजेक्ट है जिसे मैं एक्सकोड 3.2 का उपयोग करके 10.6 पर बना रहा हूं। जब मैं डीबग बिल्ड के लिए जीसीसी 4.2 का उपयोग करता हूं और ब्रेकपॉइंट हिट करता हूं, तो एक्सकोड डीबगर सामान्य रूप से स्थानीय वैरिएबल जानकारी प्रदर्शित करता है। यदि मैं ब्रेकपॉइंट हिट करता हूं, तो मैं एलएलवीएम जीसीसी 4.2 या क्लैंग एलएलवीएम चुनता हूं, स्थानीय प्रतीकों उपलब्ध नहीं हैं, और जीडीबी कहते हैं वर्तमान संदर्भ में कोई प्रतीक 'स्वयं' यदि मैं स्वयं या किसी अन्य स्थानीय प्रतीक को मुद्रित करने का प्रयास करता हूं। सभी मामलों में डीबग जानकारी उत्पन्न करें विकल्प सेट है। डीबग कॉन्फ़िगरेशन $(NATIVE_ARCH) और 10.5 एसडीके, पर सेट किया गया है सक्रिय आर्किटेक्चर बनाएं केवल विकल्प सेट है। जब जीडीबी शुरू होता है, तो मैं देख सकता हूं कि इसे x86_64-apple-darwin के रूप में कॉन्फ़िगर किया जा रहा है। मुझे कुछ स्पष्ट याद आना चाहिए। एलएलवीएम कंपाइलर का उपयोग करते समय मैं जीडीबी स्थानीय प्रतीकों को कैसे दिखा सकता हूं?एक्सकोड 3.2 + एलएलवीएम =

उत्तर

9

उन लोगों के लिए जो परिचित नहीं हैं, सीडीस्पिनोसा के उत्तर के लिए थोड़ा और विस्तार, जो मेरे लिए काम करता था, और जिसे मैंने वोट दिया था।

  1. Xcode सूची से चुनें परियोजना> संपादित परियोजना सेटिंग्स से ...
  2. बिल्ड टैब
  3. खोज बॉक्स में टाइप "अनुकूलन स्तर" चुनें, उस क्षेत्र चुनते हैं, और कोई नहीं चुनें।
  4. "डीबग सूचना प्रारूप" के लिए अगली खोज, उस क्षेत्र का चयन करें, और "DWARF" या "DSARF के साथ DWARF" चुनें।

यदि मेरे पास निजी थे तो इसे पोस्ट में टिप्पणियों में डाल दिया होगा। ;)

इसने मुझे कुछ गंभीर समय दिया, और ऐप्पल के हिस्से पर स्पष्ट रूप से मैला था, लेकिन आम तौर पर मैं शिकायत नहीं कर सकता।

0

एफएसएफ से जीडीबी ने केवल जेआईटी कोड के लिए बहुत ही recently के लिए समर्थन जोड़ा।

मुझे नहीं पता कि ऐप्पल द्वारा आपूर्ति किए गए जीडीबी के लिए इसका समर्थन है या नहीं (क्या आपको उचित स्टैक निशान मिलते हैं?)। यदि ऐसा होता है, तो यह समर्थन (स्पष्ट रूप से) अपूर्ण है।

+0

आपको क्या लगता है कि इसका जेआईटी के साथ कुछ लेना देना है, या ऐप्पल एक जीडीबी जहाज करेगा जो उनके द्वारा लिखे गए कंपाइलर के साथ पूरी तरह से काम नहीं करता है? – user57368

+0

स्टैक सही दिखता है, मेरे सभी कार्यों को दिखाता है। यह स्थानीय वार्स हैं जो गायब हैं। – glebd

+0

लेकिन llvm देशी कोड उत्पन्न कर सकता है, बाइटकोड नहीं। – osgx

4

इससे मदद मिल सकती है। प्रोजेक्ट के निर्माण विकल्पों में "लिंक-टाइम ऑप्टिमाइज़ेशन" को बंद करने का प्रयास करें। इसने एक समस्या तय की जिसमें मेरे पास लापता डीबग प्रतीकों के साथ था।

असल में, मैंने क्लैंग के साथ अजीब समस्याओं का एक गुच्छा तय किया। मैं कहूंगा कि सुविधा अभी तक उपयोग करने के लिए बहुत खून बह रहा है।

5

सुनिश्चित करें कि आप बौने प्रतीकों के साथ निर्माण कर रहे हैं और कोई अनुकूलन नहीं है। llvm एक नया बैक एंड है, और इसके सभी अनुकूलित कोडेजन को अभी तक प्रतीक पीढ़ी डीबग करने के लिए लगाया गया है।

0

मुझे यह समस्या हो रही थी और मेनू आइटम के बगल में टिक डालकर इसे हल किया गया: "प्रोजेक्ट> सक्रिय बिल्ड कॉन्फ़िगरेशन सेट करें> डीबग"। पहले, "रिलीज" विकल्प चुना गया था। तब से मेरे प्रोजेक्ट के लिए डीबगर में स्थानीय लोग दिखने लगे।