லினக்ஸில் ஒரு பிரிவு தவறு என்றால் என்ன?

ஒரு பிரிவு தவறு, அல்லது செக்பால்ட், ஒரு நினைவக பிழையாகும், இதில் ஒரு நிரல் இல்லாத நினைவக முகவரியை அணுக முயற்சிக்கிறது அல்லது நிரலுக்கு அணுக உரிமை இல்லை. மோசமாக எழுதப்பட்ட சி மற்றும் சி ++ நிரல்களில் இது பொதுவான பிழை. ஒரு நிரல் ஒரு பிரிவு பிழையைத் தாக்கும் போது, ​​அது பெரும்பாலும் "பிரிவு தவறு" என்ற பிழை சொற்றொடருடன் செயலிழக்கிறது.

பிரிவு தவறு அடிப்படைகள்

இயக்க முறைமை மட்டத்தில், பிரித்தல் செயல்முறை கிடைக்கக்கூடிய நினைவகத்தை பிரிவுகளாக பிரிக்கிறது. நினைவக பிரிவுக்கு எழுதுவதில் பிழையை எதிர்கொள்ளும்போது, ​​யூனிக்ஸ் அல்லது லினக்ஸ் இயக்க முறைமை நிரலுக்கு ஒரு SIGSEGV சமிக்ஞையை அனுப்புகிறது, பின்னர் அது "பிரிவு தவறு" செய்தியுடன் செயலிழக்கிறது. பிரித்தல் பிழைகள் பொதுவாக சி போன்ற குறைந்த-நிலை மொழிகளுக்கு குறிப்பாக இருக்கும், இது புரோகிராமருக்கு இயங்கும் நிரலுக்கு நினைவகத்தை ஒதுக்க வேண்டும், துண்டின் துண்டாகும்.

பிரித்தல் தவறுகளின் வகைகள்

பிரித்தல் பிழைகள் ஒத்த நிலைமைகளிலிருந்து எழலாம். ஒரு வரிசையின் எல்லைக்கு வெளியே செல்ல முயற்சிப்பது போன்ற ஒரு இடையக வழிதல் ஒரு செக்ஃபால்ட்டை ஏற்படுத்தக்கூடும், அல்லது ஒதுக்கப்படாத அல்லது நீக்கப்பட்ட நினைவகத்தை அணுக முயற்சிக்கும். படிக்க மட்டுமேயான நினைவகத்திற்கு எழுத முயற்சிப்பது நினைவக பிழையை ஏற்படுத்தும். இறுதியாக, சில யூனிக்ஸ் மற்றும் லினக்ஸ் கணினிகளில், பூஜ்யத்திற்கு துவக்கப்பட்ட சுட்டிகள் குறிப்பிடப்படாது; அவ்வாறு செய்வது ஒரு செக்ஃபால்ட் ஏற்படும்.

பயனராக பிரித்தல் தவறுகளைத் தவிர்ப்பது

நீங்கள் இணையத்திலிருந்து பதிவிறக்கம் செய்த ஒரு மூலத்தை இயக்குகிறீர்கள் மற்றும் மூலக் குறியீட்டைப் பற்றி உங்களுக்குத் தெரியாவிட்டால், நீங்கள் அதிர்ஷ்டமில்லாமல் இருக்கலாம்: நீங்கள் செய்யக்கூடியது ஒரு பிழை அறிக்கையைச் சமர்ப்பித்து ஒரு தீர்வை எதிர்பார்க்கலாம். நிச்சயமாக, நீங்கள் மென்பொருளின் மிகவும் புதுப்பித்த பதிப்பை இயக்குகிறீர்கள் என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள். கூடுதலாக, பிழை ஏற்கனவே புகாரளிக்கப்பட்டுள்ளதா என்பதைப் பார்க்கவும், பதிவிறக்குவதற்கு ஏதேனும் தற்காலிக பணித்தொகுப்புகள் அல்லது திட்டுகள் கிடைக்குமா என்பதைப் பார்க்கவும்.

புரோகிராமராக பிரித்தல் தவறுகளைத் தவிர்ப்பது

எழுதப்பட்ட நிரல்களில் segfaults ஐ முற்றிலும் தவிர்ப்பதற்கான ஒரே வழி, நினைவக ஒதுக்கீடுகள் மற்றும் நீக்குதல்களில் கவனமாக இருக்க வேண்டும் மற்றும் அவை ஏற்படும் போது பிழைகளைக் கண்டறிய வேண்டும். பிழையின் சரியான மூலத்தைக் கண்டுபிடிப்பது தந்திரமானதாக இருக்கலாம், குறிப்பாக நீங்கள் நிரலை இயக்கும் ஒவ்வொரு முறையும் இது காண்பிக்கப்படாது என்பதால். கூடுதலாக, உண்மையான பிழை நிரல் செயலிழக்கும் இடத்திற்கு அருகில் இருக்கக்கூடாது, ஏனெனில் தவறான நினைவக ஒதுக்கீடு நிரலை முதலில் அணுகும்போது மட்டுமே செயலிழக்கக்கூடும். ஒரு பிழைத்திருத்தி செக்பால்ட்ஸ் நிகழும்போது அவற்றைப் பிடிக்கலாம், மேலும் அவற்றைக் கண்காணிக்கலாம்.


$config[zx-auto] not found$config[zx-overlay] not found