2009-02-25 25 views

उत्तर

41

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

वैसे भी, आप को अपनी परियोजना में डीबग प्रतीक पीढ़ी को अक्षम करने की आवश्यकता नहीं है। इसके बजाए, डीबग प्रतीक प्रकार को डीडब्ल्यूएआरएफ में बदलें ("डीडब्ल्यूएआरएफ डीएसवाईएम फाइल के साथ")। आप Stabs का भी उपयोग कर सकते हैं, लेकिन यह पुराना प्रारूप है।

संपादित करें: आह, मुझे लगता है कि आप कमांड लाइन से हैं, न कि एक्सकोड से। मैं अपने मैक एटीएम के सामने बैठा नहीं हूं, लेकिन मैं gcc4 manpage से देख सकता हूं कि आप निर्दिष्ट कर सकते हैं -स्टैब्स प्रारूप का उपयोग करने के लिए।

+0

हाय, आप डीबग प्रतीक कैसे बदलते हैं? क्या इसके लिए एक कमांड लाइन है? – neversaint

+4

दिलचस्प क्विर्क: मैकोज़ 10.6.2 पर, यदि आप 'लिंक' लाइन में एक स्रोत फ़ाइल शामिल करते हैं, तो dsymutil प्रोग्राम .dSYM जानकारी उत्पन्न करने के लिए चलाया जाता है; यदि आप केवल ऑब्जेक्ट फाइलों और पुस्तकालयों को लिंक करते हैं, तो dsymutil प्रोग्राम नहीं चलाया जाता है, इसलिए .dSYM जानकारी उत्पन्न नहीं होती है। आप इसे '-v' विकल्प के साथ जीसीसी में मान्य कर सकते हैं जो 'gcc' द्वारा निष्पादित कार्यक्रम दिखाता है। –

+0

आप -gdb का भी उपयोग कर सकते हैं, जो मुझे लगता है कि अगर आप gdb के साथ डीबग करने की योजना बनाते हैं तो मुझे लगता है कि स्टैब की तुलना में अधिक सुविधाएं सक्षम करती हैं। – Quantum7

2

मुझे लगता है कि आपका उपयोग एक्सकोड है। "प्रोजेक्ट"/"प्रोजेक्ट सेटिंग्स संपादित करें" मेनू आइटम पर जाएं, "जीसीसी 4.0 - कोड जनरेशन" अनुभाग के तहत बिल्ड टैब पर क्लिक करें, डीबग सिंबल जेनरेट करें। आप इसे खोजने में सहायता के लिए खोज क्षेत्र में "sym" टाइप कर सकते हैं।

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