এক্সসি_আই 386_ জিপিএফএলটি অবশ্যই "জেনারেল প্রোটেকশন ফল্ট" কে নির্দেশ করছে, যা আপনাকে জানাতে x86 এর উপায় যা "আপনি এমন কিছু করেছিলেন যা আপনাকে করার অনুমতি নেই"। সাধারণত এটির অর্থ এই নয় যে আপনি মেমরির সীমা ছাড়িয়ে গিয়েছেন তবে এটি এমন হতে পারে যে আপনার কোডের সীমা ছাড়িয়ে যাচ্ছে এবং খারাপ কোড / ডেটা এমনভাবে ব্যবহার করা হচ্ছে যা কোনও ধরণের সুরক্ষা লঙ্ঘনের জন্য তৈরি করে।
দুর্ভাগ্যক্রমে সমস্যাটি আরও প্রসঙ্গ ছাড়াই ঠিক কী আছে তা নির্ধারণ করা শক্ত হতে পারে, আমার এএমডি Program৪ প্রোগ্রামারের ম্যানুয়ালে ২০০ 2005 সাল থেকে ২ য় খণ্ড তালিকাভুক্ত রয়েছে - সমস্ত অ্যাকাউন্টের দ্বারা, সম্ভবত 8 বছর পরে কিছু যুক্ত করা হয়েছিল আরও অনেক কিছু।
যদি এটি একটি -৪-বিট সিস্টেম হয় তবে একটি দুর্ভাগ্যজনক দৃশ্যাবলীটি হ'ল আপনার কোডটি "নন-ক্যানোনিকাল পয়েন্টার" ব্যবহার করছে - যার অর্থ 64৪-বিট ঠিকানা এমনভাবে তৈরি করা হয়েছে যাতে ঠিকানার উপরের ১ b বিটগুলি না থাকে নীচের 48 বিটের শীর্ষের সমস্ত অনুলিপি (অন্য কথায়, ঠিকানার 16 শীর্ষে 16 বিটের নীচে বিটের উপর ভিত্তি করে কোনও ঠিকানার 16 টি বা 1 হওয়া উচিত)। এই নিয়মটি গ্যারান্টি দেওয়ার জন্য স্থানে রয়েছে যে আর্কিটেকচারটি "ঠিকানা সীমার মধ্যে বৈধ বিটের সংখ্যা নিরাপদে প্রসারিত করতে পারে"। এটি নির্দেশ করবে যে কোডটি হয় অন্য পদার্থের সাথে কিছু পয়েন্টার ডেটা ওভাররাইট করছে বা কিছু পয়েন্টার মান পড়ার পরে সীমা ছাড়িয়ে যাচ্ছে।
আর একটি সম্ভাব্য কারণ হ'ল এসএসই রেজিস্টারের সাথে অ-স্বাক্ষরিত অ্যাক্সেস - অন্য কথায়, কোনও 16-বাইট প্রান্তিক নয় এমন ঠিকানা থেকে 16 বাইট এসএসই রেজিস্টার পড়া।
যেমনটি আমি বলেছি, অন্যান্য অনেকগুলি সম্ভাব্য কারণ রয়েছে, তবে বেশিরভাগের মধ্যে এমন কিছু রয়েছে যা "নর্মাল" কোডটি 32- বা 64-বিট ওএসে করবে না (যেমন অবৈধ নির্বাচক সূচকের সাথে সেগমেন্টের রেজিস্ট্রেশন লোড করা বা লিখিত হওয়া) এমএসআর এর (মডেল নির্দিষ্ট রেজিস্টার))