सवाल lldb वैरिएबल मानों को प्रिंट करने में विफल रहता है "त्रुटि: संदर्भ 'आईडी' संदिग्ध है"


चूंकि मैंने xcode 4.3 में अपडेट किया है और इसे अपने डीबगर को lldb पर स्विच करने दिया है, इसलिए सदस्य त्रुटि को मुद्रित करने का कोई भी अनुरोध इस त्रुटि संदेश से विफल रहता है:

(lldb) print request
error: error: reference to 'id' is ambiguous
note: candidate found by name lookup is 'id'
note: candidate found by name lookup is 'id'
error: 1 errors parsing expression

'स्वयं' ठीक है:

(lldb) print self
(LoginViewController *) $6 = 0x1cd54d50

और सदस्य चर मुद्रण के अन्य रूप भी असफल हो जाते हैं:

(lldb) print self.request
error: property 'request' not found on object of type 'LoginViewController *'; did you mean to access ivar 'request'?
error: 1 errors parsing expression
(lldb) print self->request
error: error: reference to 'id' is ambiguous
note: candidate found by name lookup is 'id'
note: candidate found by name lookup is 'id'
error: 1 errors parsing expression

अन्यथा अन्यथा ठीक काम कर रहा है। एक्सकोड की परिवर्तनीय विंडो सही ढंग से मूल्य पुनर्प्राप्त कर सकती है। मैंने एक स्वच्छ निर्माण और हटाने / ~ लाइब्रेरी / डेवलपर / एक्सकोड / DerivedData / हटाने की कोशिश की है। गुगलिंग ने एक ही समस्या के किसी अन्य उदाहरण का खुलासा नहीं किया है।

मुझे ऐप्पल के देव मंच पर एक धागा मिला लेकिन कोई समाधान नहीं:

https://devforums.apple.com/message/623694

मैंने ऐप्पल को बग आईडी # 11029004 के रूप में इसकी सूचना दी है।


45
2018-03-01 11:48


मूल


एलएलडीबी अभी भी एक काम प्रगति पर है। - zaph
@Zaph मुझे आश्चर्य है कि ऐप्पल ने एक्सकोड 4.3 में डिफ़ॉल्ट डीबगर क्यों बनाया है यदि ऐसा है। - JosephH
किसी कारण से डीबगर में आईवर प्रदर्शित करने की क्षमता ऐप्पल पर कम प्राथमिकता रखती है। कई बार इवर जो स्वत: निर्मित होते हैं @property बयान या घोषित किया गया @implementation प्रदर्शित नहीं हैं। धीरे-धीरे हालात बेहतर हो रहे हैं। कृपया bugreport.apple.com पर एक बग फाइल करें। - zaph
मुझे एक ही समस्या है, लेकिन केवल मेरे मुख्य प्रोजेक्ट में, ताजा जेनरेटेड प्रोजेक्ट में नहीं। यह पता नहीं लगाया कि यह क्या हो सकता है ... पुस्तकालय? सी ++? - nevyn
एलडीडीबी के लिए एक्सकोड 4.3 में डिफॉल्ट डीबगर होने के लिए, फिर भी कुछ ऐसा करने के लिए मौलिक नहीं है ... कुछ और अस्वस्थ है। मैंने पी, पीओ और प्रिंट की कोशिश की, इसका कोई फायदा नहीं हुआ। इस राज्य में एलएलडीबी मेरे लिए बेकार है। उम्मीद है कि यह अजीबता का कुछ और हिस्सा है जिसे आसानी से सुलझाया जा सकता है। इस बीच एक बग रिपोर्ट फाइल करेगा। इस बीच, यह उत्साहजनक है: lldb.llvm.org/status.html - Joe D'Andrea


जवाब:


मुझे एक कामकाज मिला:

'उत्पाद' मेनू के अंतर्गत 'योजना संपादित करें' का उपयोग करें, बाएं पट्टी में 'चलाएं' का चयन करें, 'जानकारी' टैब, और डीबगर को जीडीबी में बदलें (यह xcode 5 पर लागू नहीं होता है, जिसमें अब जीडीबी नहीं है)।

स्पष्ट रूप से ऐप्पल ने सोचा कि वे इस बग को xcode 4.3.1 में ठीक कर देंगे, लेकिन यह अभी भी होता है। मैंने अनुरोध की गई कुछ अतिरिक्त डीबग जानकारी जमा की, इसलिए मुझे उम्मीद है कि यह एक्सकोड की अगली रिलीज के लिए तय किया जाएगा। यह अभी भी 4.3.2 में विफल रहा है। देख https://devforums.apple.com/message/623694 ऐप्पल से अपडेट के लिए।

अद्यतन करें

मैंने कई मामलों की कोशिश की है जिनके साथ मुझे परेशानी हो रही है, और वे सभी एक्सकोड 4.4.1 में एलएलडीबी के साथ ठीक काम कर रहे हैं - इसलिए यदि आपको यह समस्या हो रही है तो मैं अत्यधिक उन्नयन की सलाह देता हूं।


39
2018-03-01 12:14



उत्कृष्ट धन्यवाद! मामूली सुधार: "योजना संपादित करें" "उत्पाद" मेनू के अंतर्गत है। बाकी के बाकी और यह मेरा दिन बचाया! - mpemburn
@mpemburn धन्यवाद, इसे सही किया है :) - JosephH
अद्यतन: एक्सकोड 5 ने पूरी तरह से जीडीबी हटा दिया है और आप इसकी सभी महिमा में एलएलडीबी के साथ फंस गए हैं। - Tom Redman


निम्नलिखित अभिव्यक्ति के साथ प्रयास करें,

p self.view.bounds.size.width

या उपयोग करें,

po self.view

पी - प्रिंट केवल सामान्य / सरल मान मुद्रित करने के लिए उपयोग किया जाता है जबकि, पीओ - ​​प्रिंट ऑब्जेक्ट किसी ऑब्जेक्ट के मूल्य को मुद्रित करने के लिए NSLog के समान काम करता है


3
2017-09-11 12:14





उपयोग Edit scheme 'उत्पाद' मेनू के अंतर्गत, बाएं पट्टी में 'चलाएं' का चयन करें, 'जानकारी' टैब, और डीबगर को जीडीबी में बदलें।

Product>Edit Scheme>Run(योजनाएं)>Build Configuration इसमें तीन विकल्प हैं (कुछ केवल दो 1, 2 देख सकते हैं)  1. डीबग  2. रिलीज  3. एडहोक

बस सेट करें अगर यह सेट है Debug यदि नहीं तो इसे डीबग करें।

यह वह गलती थी जो मैं कर रहा था


2
2017-11-05 05:52





(एक्सकोड 5) यह वास्तव में मूल प्रश्न का सीधा जवाब नहीं है, लेकिन मुझे लगता है कि यह प्रासंगिक हो सकता है और मैं किसी और को बर्बाद करने के लिए घृणा करता हूं क्योंकि मैंने इसे ट्रैक किया था। मेरी समस्या यह थी कि डीबग विंडो में कोई परिवर्तनीय मान नहीं दिखाया जा रहा था।

मैंने उस आमंत्रण की जांच की जो वास्तव में संकलक को दिया जा रहा था, और पाया कि यह कार्यप्रणाली में प्रत्येक परियोजना और लक्ष्य के बावजूद -O0 पर स्पष्ट रूप से सेट होने के बावजूद अनुकूलित किया जा रहा है, और यहां अन्य उत्तरों में उल्लिखित सेटिंग्स सभी को सेट किया जा रहा है डिबग। बहुत खोज के बाद मुझे पता चला कि "प्रोजेक्ट" के लिए xxx का उपयोग करें, जिसे "कमांड लाइन बिल्ड के लिए xxx का उपयोग करें" कहा जाता है, जहां xxx डीबग / रिलीज या जो भी कॉन्फ़िगरेशन उपलब्ध है। टूलटिप विवरण के मुताबिक, इस विकल्प को केवल xcodebuild टूल के साथ कमांड लाइन के माध्यम से किए गए निर्माण को प्रभावित करना चाहिए (जो थोड़ा अजीब है क्योंकि वह उपकरण कमांड लाइन विकल्प के रूप में उपयोग करने के लिए कौन सी योजना का चयन करने में पूरी तरह सक्षम है)। वैसे भी, डीबग के लिए इस विकल्प को बदलकर आखिरकार आईडीई को संकलक को बताने के लिए मिला जो मैं चाहता था -O0 और -g। मुझे यह वही कार्यक्षेत्र के साथ Xcode4 के साथ कभी भी याद नहीं है।

मुझे यह भी जोड़ना चाहिए कि आप इस सेटिंग को बदलने से पहले एक साफ करना चाहें। मैंने इसे बिना सफाई के बदल दिया, और अचानक मेरी कुछ हेडर फाइलें नहीं मिलीं (ऐसा लगता है कि प्री-कंपाइल हेडर सही तरीके से जेनरेट नहीं किए जा रहे थे)। अंधेरे में छेड़छाड़ के एक और घंटे के बाद, मैंने पाया कि अगर मैंने उपरोक्त उल्लिखित विकल्प को रिलीज करने के लिए पहले सेट किया है और एक साफ किया है, तो मैं इसे डीबग पर सेट कर सकता हूं और सफलतापूर्वक निर्माण कर सकता हूं।

क्या किसी को पता है कि एक्सकोड विकास टीम वास्तव में इसका इस्तेमाल करती है या नहीं? मुझे अलग इंप्रेशन मिलता है कि वे नहीं करते हैं।


1
2017-10-10 21:42





के लिए जाओ Product->Scheme->New Scheme... और अपने लक्ष्य के लिए एक नई योजना बनाएं। अपने उत्पाद को साफ करें Product->Clean और आपका ऐप ठीक से चलना चाहिए।

ऐसा करने से मेरी समस्या हल हो गई।


0
2017-07-22 12:11