سؤال

ما هو SEGV_MAPERR, ، لماذا يأتي دائما SIGSEGV?

هل كانت مفيدة؟

المحلول

هناك نوعان شائعان من SEGV, ، وهو خطأ ناتج عن وصول غير صالح للذاكرة:

  1. تم الوصول إلى صفحة بها أذونات خاطئة.على سبيل المثال، كان للقراءة فقط ولكن الكود الخاص بك حاول الكتابة عليه.سيتم الإبلاغ عن هذا كما SEGV_ACCERR.
  2. تم الوصول إلى صفحة لم يتم تعيينها حتى في مساحة عنوان التطبيق على الإطلاق.غالبًا ما ينتج هذا عن إلغاء الإشارة إلى مؤشر فارغ أو مؤشر تالف بقيمة عددية صغيرة.هذا كما ورد SEGV_MAPERR.

يوجد توثيق من نوع ما (كود مصدر Linux المفهرس) لـ SEGV_MAPERR هنا: http://lxr.free-electrons.com/ident?i=SEGV_MAPERR.

نصائح أخرى

وانها خطأ تجزئة. وأغلب الظن قضية مؤشر المتدلية، أو نوعا من تجاوز سعة المخزن المؤقت.

وSIGSSEGV هو إشارة إلى أن ينهي ذلك بناء على المسألة، خطأ تجزئة.

والتحقق من وجود مؤشرات التعلق فضلا عن قضية تجاوز.

وتمكين الأساسية مقالب سوف تساعدك على تحديد المشكلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top