Ish vaqti kutubxonalarining disk raskadrovka versiyalari
Ish vaqti kutubxonalarida maxsus disk raskadrovka qo'shimchalaridan foydalanish bilan bir qatorda, ulanish va ish vaqti bosqichlarida sezilarli qo'shimcha xotira va vaqt xarajatlariga olib keladi, ishlab chiquvchilar oldindan moslashtirilgan ish vaqti kutubxonalaridan foydalanishlari mumkin. Bunday kutubxonalarda funktsiya chaqiruvlari atrofida ba'zi kodlar qo'shiladi, uning maqsadi kirish parametrlarining haqiqiyligini tekshirishdir. Misol uchun, eski do'stni ko'rib chiqing, string nusxa ko'chirish funktsiyasi:
strcpy(a,b);
U ikkita parametrni oladi, ularning ikkalasi ham turga ko'rsatgichdir char: asl satr uchun bitta ( b) va natija qatori uchun boshqasi ( a). Ushbu soddaligiga qaramay, ushbu funktsiya ko'plab xatolar manbai bo'lishi mumkin:
agar ko'rsatkich qiymati a nolga teng yoki noto'g'ri bo'lsa, ushbu manzilga nusxalash xotiraga kirish taqiqlangan xatoga olib keladi;
agar ko'rsatkich qiymati b nolga teng yoki noto'g'ri bo'lsa, ushbu manzildan ma'lumotni o'qish xotiraga kirishni taqiqlash xatosiga olib keladi;
agar satr oxirida bo'lsa b agar tugatuvchi "0" belgisi yo'q bo'lsa, kutilganidan ko'proq belgilar maqsad qatorga ko'chiriladi;
string hajmi bo'lsa b satr uchun ajratilgan xotiradan ko'proq a, keyin tomonidan belgilangan manzil kutilganidan ko'proq bayt yoziladi (odatiy bufer to'lib ketish stsenariysi).
Kutubxonaning disk raskadrovka versiyasi parametr qiymatlarini tekshiradi a"va" b'. Ip uzunliklari ham mos kelishiga ishonch hosil qilish uchun tekshiriladi. Agar noto'g'ri parametr aniqlansa, tegishli signal xabari chiqariladi. QNX Momentics muhitida ushbu xato xabarlari maqsadli tizimdan import qilinadi va ekranda ko'rsatiladi. QNX Momentics muhiti shuningdek, operativ xotiradan foydalanishni chuqur tahlil qilish imkonini beruvchi xotira ajratish va ajratishni kuzatish texnologiyasidan foydalanadi.
Kutubxonaning disk raskadrovka versiyasi uning funksiyalaridan foydalanadigan har qanday dastur bilan ishlaydi; kodga qo'shimcha o'zgartirishlar kiritishingiz shart emas. Bundan tashqari, dasturchi dasturni ishga tushirish vaqtida kutubxonani qo'shishi mumkin. Keyin kutubxona toʻliq standart kutubxonaning tegishli qismlarini almashtirib, toʻliq kutubxonaning disk raskadrovka versiyasidan foydalanish zaruratini yoʻqotadi. QNX Momentics IDE-da ishlab chiquvchi dasturni ishga tushirishda oddiy interaktiv disk raskadrovka seansining bir qismi sifatida bunday kutubxonani qo'shishi mumkin. Shaklda. 4-rasmda QNX Momentics xotira xatolarini qanday aniqlashi va hisobot berishiga misol keltirilgan.
Kutubxonalarning disk raskadrovka versiyalari kutubxona funksiyalarini chaqirishda xatolarni aniqlash uchun tasdiqlangan "agressiv bo'lmagan" usulni taqdim etadi. Ushbu usul RAM tahlili va malloc() va free() kabi mos keladigan qo'ng'iroqlar juftligiga bog'liq bo'lgan boshqa tahlil usullari uchun idealdir. Boshqacha qilib aytganda, ushbu texnologiya faqat kutubxona qo'ng'iroqlari bilan kod uchun ishlash vaqtidagi xatolarni aniqlay oladi. Biroq, ko'pchilik topilmadi tipik xatolar, masalan, inline ko'rsatgichga havolalar yoki noto'g'ri ko'rsatkich arifmetikasi. Odatda, disk raskadrovka paytida faqat ma'lum bir kichik to'plam nazorat qilinadi. tizim qo'ng'iroqlari. Bu haqda ko'proq maqolada bilib olishingiz mumkin.
Guruch. 4- RAM tahlili xotiraga kirish bilan bog'liq API qo'ng'iroqlari maydoniga tuzoqlarni joylashtirish orqali amalga oshiriladi.
Do'stlaringiz bilan baham: |