डिबग किए बिना अवैध निर्देश त्रुटि उत्पन्न की है, एक प्रोग्राम चलाते समय मैंने असेंबली में लिखा है, मुझे Illegal instruction
त्रुटि मिलती है। क्या यह जानने का कोई तरीका है कि कौन सा निर्देश त्रुटि उत्पन्न कर रहा है, बिना डीबगिंग के, क्योंकि जिस मशीन पर मैं चल रहा हूं उसके पास डीबगर या कोई विकास प्रणाली नहीं है। दूसरे शब्दों में, मैं एक मशीन में संकलित करता हूं और दूसरे पर चलता हूं। मैं अपने प्रोग्राम को उस मशीन पर परीक्षण नहीं कर सकता जिसे मैं संकलित कर रहा हूं क्योंकि वे एसएसई 4.2 का समर्थन नहीं करते हैं। जिस मशीन पर मैं प्रोग्राम चला रहा हूं वह फिर भी एसएसई 4.2 निर्देशों का समर्थन करता है।खोजें कि कौन से असेंबली निर्देश ने
मुझे लगता है कि ऐसा इसलिए हो सकता है क्योंकि मुझे एसएसई 4.2 निर्देशों को पहचानने के लिए असेंबलर (वाईएएसएम) को बताना होगा, जैसे कि हम इसे -msse4.2
ध्वज पास करके जीसीसी के साथ करते हैं। या क्या आपको लगता है कि इसका कारण नहीं है? एसएसई 4.2 निर्देशों को पहचानने के लिए वाईएएसएम को कैसे बताना है?
शायद मुझे SIGILL सिग्नल को फंसाना चाहिए और फिर SA_SIGINFO को डीकोड करना है यह देखने के लिए कि प्रोग्राम किस प्रकार का अवैध संचालन करता है।
वाईएएसएम एसएसई 4.2 निर्देशों को पहचानता है, इसलिए यह समस्या नहीं है। क्या आप वाकई एसएसई 4.2 का समर्थन करते हैं? यह वास्तव में हार्डवेयर क्या है? आप प्रोग्राम को एक एमुलेटर में चला सकते हैं, वालग्रींड (जो एसएसई 4.2 के सबसेट का समर्थन करता है जिसका उपयोग ग्लिब और जीसीसी में किया जाता है) शायद काम करेगा। – hirschhornsalz