2012-12-18 43 views
5

अब मैं एक्सकोड के साथ कोकोस 2 डी-एक्स विकसित कर रहा हूं। लेकिन मुझे नहीं पता कि एलएलडीबी के साथ सी ++ ऑब्जेक्ट की वास्तविक कक्षा की जांच कैसे करें। जैसा कि आप छवि में देख सकते हैं, एक्सकोड का इंस्पेक्टर वास्तविक वर्ग जानता है लेकिन p या po नहीं है।एलएलडीबी के साथ सी ++ ऑब्जेक्ट की वास्तविक कक्षा की जांच कैसे करें?

तो सवाल यह है कि एलएलडीबी के साथ सी ++ ऑब्जेक्ट की वास्तविक कक्षा की जांच कैसे करें?

LLDB knows the actual class

+0

"सत्य वर्ग" से आपका क्या मतलब है? –

+0

मुझे लगता है कि उसका मतलब है "वास्तविक वर्ग"। सी ++ में कोई प्रकार की जानकारी नहीं है, यानी सामान्यतः सी ++ कक्षाएं नहीं जानते कि वे क्या हैं। अच्छे डिबगर्स इस व्यवहार के आसपास काम करने के लिए टाइप फॉर्मेटिंग का उपयोग करते हैं, एलएलडीबी के पास एक प्रकार का वर्णन प्रारूप है, इससे थोड़ा सा मदद मिल सकती है: http://lldb.llvm.org/varformats.html – LearnCocos2D

+0

@ जोचिमपिलबोर्ग मैंने प्रश्नों को अपडेट किया है;) यह "वास्तविक" है कक्षा"। – HKTonyLee

उत्तर

5

इसका कारण यह है Xcode यूआई "गतिशील प्रकार" डिफ़ॉल्ट रूप से सक्षम है। "मैं इस वस्तु के वास्तविक प्रकार को समझने जा रहा हूं" के लिए गतिशील प्रकार एलएलडीबी लिंगो हैं। आदेश कंसोल पर है कि एक ही व्यवहार पाने के लिए, आप

(lldb) फ्रेम चर -d रन लक्ष्य pObject

खुला स्रोत LLDB में, आप भी टाइप कर सकते हैं

टाइपिंग की कोशिश कर सकते (lldb) expr -d रन-टार्गेट - pObject

+0

धन्यवाद! आपका जवाब काम करता है! :) – HKTonyLee