SEGV_MAPERR क्या है?


जवाबों:


197

SEGV के दो सामान्य प्रकार हैं , जो एक त्रुटि है जो अमान्य मेमोरी एक्सेस के परिणामस्वरूप होती है:

  1. एक पृष्ठ एक्सेस किया गया था जिसमें गलत अनुमतियां थीं। जैसे, यह केवल पढ़ने के लिए था, लेकिन आपके कोड ने इसे लिखने की कोशिश की। इसे SEGV_ACCERR के रूप में रिपोर्ट किया जाएगा
  2. एक ऐसा पेज एक्सेस किया गया जो एप्लिकेशन के एड्रेस स्पेस में बिल्कुल भी मैप नहीं किया गया है। यह अक्सर एक अशक्त सूचक या एक पॉइंटर को डेरेफेरिंग करने के परिणामस्वरूप होगा जो एक छोटे पूर्णांक मान के साथ भ्रष्ट था। यह SEGV_MAPERR के रूप में रिपोर्ट किया गया है

SEGV_MAPERR के लिए एक प्रकार (अनुक्रमित लिनक्स स्रोत कोड) का दस्तावेज़ीकरण यहाँ है: http://lxr.free-electrons.com/ident?i=SEGV_MAPERR


8
क्यों stackoverflow.com/a/1000010/358475 यह एक पूर्ण और उपयोगी है जब जवाब के रूप में चिह्नित किया गया है?
ओल्डपेकुलियर 16

2
प्रश्न और अन्य उत्तर मेरे उत्तर से बहुत पुराने हैं। मैंने इसे बेहतर बनाने के लिए दूसरे उत्तर को संपादित किया।
०':

उन परिस्थितियों को जानना दिलचस्प होगा जो इन्हें EXC_BAD_ACCESS अपवाद प्रकारों से अलग करती हैं। उदाहरण के लिए पृष्ठ मैप किया गया है, लेकिन आवंटित नहीं किया गया है (/ हाल ही में अस्वीकृत)?
बोबजट

5
SEGV_MAPERRस्टैक ओवरफ़्लो का एक उदाहरण (कोई सज़ा नहीं है)। : डी
अंटी हापाला

2
इससे भी अधिक SEGV प्रकार हैं: elixir.free-electrons.com/linux/latest/source/include/uapi/…
tomasz

40

यह एक विभाजन दोष है। ज्यादातर शायद एक झूलने वाला सूचक मुद्दा है, या बफर अतिप्रवाह के कुछ प्रकार।

SIGSSEGV वह संकेत है जो इसे मुद्दे, विभाजन दोष के आधार पर समाप्त करता है।

झूलने के संकेत के साथ-साथ अतिप्रवाह के मुद्दे की जाँच करें।

कोर डंप सक्षम करने से आपको समस्या को निर्धारित करने में मदद मिलेगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.