एक्सकोड में हार्ड-ब्रेक का कारण बनने का निर्देश क्या है? उदाहरण के लिए विजुअल स्टूडियो के तहत मैं '_asm int 3' या 'डीबगब्रैक()' कर सकता हूं। कुछ जीसीसी कार्यान्वयन के तहत यह एएसएम ("ब्रेक 0") या एएसएम ("जाल") है।एक्सकोड '__asm int 3/डीबगब्रैक()/हल्ट के बराबर है?
मैंने बिना किसी किस्मत के एक्सकोड के तहत विभिन्न combos की कोशिश की है। (इनलाइन असेंबलर ठीक काम करता है इसलिए यह वाक्यविन्यास मुद्दा नहीं है)।
संदर्भ के लिए यह एक जोर मैक्रो के लिए है। मैं पोर्टेबिलिटी के लिए assert.h में परिभाषाओं का उपयोग नहीं करना चाहता, और क्योंकि वे संस्करण XCode में एक abort() करने के लिए प्रतीत होता है।
जॉन - सुपर, चीयर्स। संदर्भ के लिए इंटेल मैक और आईफोन के लिए int 3 वाक्यविन्यास आवश्यक है।
क्रिस - अपनी टिप्पणी के लिए धन्यवाद, लेकिन कई कारणों से विभिन्न प्लेटफार्मों पर वापस पोर्ट codebases के लिए मानक ज़ोर() फ़ंक्शन से बचने के लिए कर रहे हैं। यदि आप अपने स्वयं के जोर देने की परेशानी के लिए गए हैं तो आमतौर पर आपके पास अतिरिक्त कार्यक्षमता होती है (लॉगिंग, अवांछित, उपयोगकर्ता-बातचीत) जो आप बनाए रखना चाहते हैं।
'__assert "या इसी तरह के कार्यान्वयन के माध्यम से हैंडर को प्रतिस्थापित करने का प्रयास करने का आपका सुझाव पोर्टेबल नहीं होगा। मानक' जोर 'आमतौर पर एक मैक्रो होता है और जब यह मैक पर __assert को मैप कर सकता है, । दूसरे प्लेटफार्म पर टी
, इस 'हो जाता है __asm __ (" $ 3 int ") इंटेल Macs और (शायद)' __asm __ ("जाल") के लिए 'iDevices के लिए'। – zneak
उपरोक्त लिंक अब मृत प्रतीत होता है। – rstackhouse