3.18 कर्नेल (3.12 कार्य) का उपयोग करके "प्रोग्राम प्राप्त सिग्नल" के बिना डिबग कैसे करें?


10

मैंने रास्पबियन में gdb के साथ एक कार्यक्रम को डिबग करने की कोशिश की, लेकिन मुझे जो कुछ भी मिला वह है:

Program received signal SIGILL, Illegal instruction.
0xb6fe8acc in ?? () from /lib/ld-linux-armhf.so.3

यह ( ) SIGILLको हैंडल सेट करने में मदद नहीं करता है :nostophandle SIGILL nostop

Program received signal SIGILL, Illegal instruction.

Program terminated with signal SIGILL, Illegal instruction.
The program no longer exists.

मुझे मिलने वाला सभी बैकट्रेस है:

#0  0xb6fe8acc in ?? () from /lib/ld-linux-armhf.so.3
#1  0x00000000 in ?? ()

अगर मैं gdb के बाहर प्रोग्राम शुरू करता हूं, तो मुझे एक सामान्य C ++ अपवाद मिलता है (जिसे मैं डीबग करना चाहूंगा)।

सभी सॉफ़्टवेयर को रास्पियन रिपॉजिटरी से नवीनतम संस्करण में अपडेट किया गया था। इसके अलावा मैंने रास्पबेरी पाई फाउंडेशन कर्नेल "3.18.9+" और रास्पबैन कर्नेल "3.18.0-ट्रंक-आरपीआई" की कोशिश की (मुझे कुछ कस्टम कर्नेल मॉड्यूल की आवश्यकता है)। मैं किसी भी समस्या के बिना अपने मुख्य मशीन पर एक ही कार्यक्रम डिबग कर सकता हूं।

अद्यतन: डीबगिंग कर्नेल के साथ अपेक्षा के अनुसार काम करता है "3.12-1-rpi"।

इस त्रुटि के कारण क्या है?


क्या आपने कोशिश की handle SIGILL pass nostop?
एमप्रोमोनेट

@mpromonet चूंकि passडिफॉल्ट सेट है, इसलिए इससे कोई फर्क नहीं पड़ना चाहिए, और इससे कोई फर्क नहीं पड़ा । उसी परिणाम के साथhandle SIGILL nostop
someonr

और कोई सार्थक बैकट्रेस ( bt) नहीं है? मुझे लगता है कि आपको यहां अधिक संदर्भ प्रदान करने के बारे में सोचने की आवश्यकता है यदि आप किसी को गंभीरता से यह समझाने की उम्मीद करते हैं कि "यह त्रुटि क्या है?" केवल लिंकर / लोडर ( ld-linux-armhf) में एक अवैध निर्देश के आधार पर ।
गोल्डीलॉक्स

मुझे कोई सार्थक बैक्रेस नहीं मिला (संपादित प्रश्न देखें)। मैं एक छोटा सा उदाहरण बनाने की कोशिश करूँगा। इसके अलावा, मुझे भ्रम है कि मुझे gdb के बिना अवैध ओपकोड नहीं मिलता है।
someonr

1
स्टैक लगता है तोड़ी गई है, मदद कर सकता है?
एमप्रोमोनेट

जवाबों:


4

यह इस मुद्दे के समान दिखता है: https://github.com/raspberrypi/linux/issues/766

चार दिन पहले तय किया।


आशाजनक लगता है। बाद में परीक्षण करेंगे। जानकारी के लिए Thx।
someonr

@someonr आपने चेक किया?
tshepang

sudo apt-get update; sudo apt-get upgrade; sudo rpi-updateमेरे लिए इस मुद्दे को तय किया, मुझे उपयोग करने की अनुमति दी continueऔरhandle SIGILL nostop
मॉरलोक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.