Amaliy ish 1 Mavzu: Loyixaviy takliflar va jamoalar. Biznes ilovalarni ulashish buyicha misollar. Ishdan maqsad: topshiriq


GNU C/C++ Mudflap: manba kodiga kompilyatsiya vaqti



Download 2,24 Mb.
bet55/89
Sana11.04.2022
Hajmi2,24 Mb.
#542710
1   ...   51   52   53   54   55   56   57   58   ...   89
Bog'liq
Dasturiy injiniringga kirish

GNU C/C++ Mudflap: manba kodiga kompilyatsiya vaqti


GNU C/C++ kompilyatorining (GCC) 4.x versiyasida mavjud bo'lgan Mudflap vositasi manba kodiga kompilyatsiya vaqtini kiritishdan foydalanadi. Shu bilan birga, bajarilish jarayonida xatolar yuzaga kelishi mumkin bo'lgan tuzilmalar tekshiriladi. Mudflap dasturining asosiy e'tibori ko'rsatgich operatsiyalariga qaratilgan, chunki ular C va C++ tillarida yozilgan dasturlarning ish vaqtidagi ko'plab xatolarining manbai hisoblanadi.
Mudflap asbobini o'z ichiga olgan holda, GCC kompilyatori kiritishda yana bir ruxsatga ega tasdiq kodi ko'rsatkich operatsiyalari uchun. Qo'yilgan kod odatda o'tkazilgan ko'rsatkichlarning qiymatlarini tekshirishni amalga oshiradi. Noto'g'ri ko'rsatkich qiymatlari GCC xabarlarni chiqarishiga olib keladi standart qurilma konsol xatolarini chiqarish (stderr). Mudflap-ning ko'rsatgichni tekshirgichi shunchaki ko'rsatkichlarni null uchun tekshirmaydi: uning ma'lumotlar bazasi haqiqiy ob'ektlar va ob'ekt xususiyatlari uchun xotira manzillarini saqlaydi, masalan, manba kodidagi joylashuv, sana/vaqt tamg'asi, xotira ajratilganda va ajratilganda stekning orqaga qaytishi. Bunday ma'lumotlar bazasi dasturning dastlabki kodida xotiraga kirish operatsiyalarini tahlil qilishda kerakli ma'lumotlarni tezda olish imkonini beradi.
Strcpy() kabi kutubxona funktsiyalari o'tgan parametrlarni tekshirmaydi. Bunday funktsiyalar Mudflap tomonidan ham sinovdan o'tkazilmaydi. Biroq, Mudflap-da statik bog'langan kutubxonalar uchun belgilar o'ramini yoki dinamik kutubxonalar uchun qo'shimchani yaratish mumkin. Ushbu texnologiya yordamida dastur va kutubxona o'rtasida qo'shimcha qatlam yaratiladi, bu parametrlarni tasdiqlash va og'ishlarning namoyon bo'lishi haqida xabar berish imkonini beradi. Mudflap qaytarilgan ko'rsatgich qiymatlarining haqiqiyligini aniqlash uchun ilova tomonidan foydalaniladigan xotira chegaralari (uyma, stek, kod va ma'lumotlar segmentlari va boshqalar) haqidagi bilimga asoslangan evristik algoritmdan foydalanadi.
GCC kompilyatorining buyruq qatori opsiyalaridan foydalanib, ishlab chiquvchi kod qismlarini kiritish va xatti-harakatlarni boshqarish uchun Mudflap funksiyalarini yoqishi mumkin, masalan, buzilishlarni (chegaralarni, qiymatlarni) boshqarish, qo'shimcha tekshirish va sozlashlarni amalga oshirish, evristik va o'z-o'zini diagnostikani yoqish. Masalan, -fmudflap kaliti standart Mudflap konfiguratsiyasini o'rnatadi. Mudflap tomonidan topilgan qoidabuzarliklar haqidagi kompilyator xabarlari chiqish konsoliga (stderr) yoki buyruq qatoriga chiqariladi. Batafsil chiqish qoidabuzarlik va tegishli o'zgaruvchilar va funktsiyalar, shuningdek kodning joylashuvi haqida ma'lumot beradi. Ushbu ma'lumot avtomatik ravishda IDE ga import qilinishi mumkin, u erda u ko'rsatiladi va stek kuzatiladi. Ushbu ma'lumotlardan foydalanib, ishlab chiquvchi dasturning manba kodidagi tegishli joyga tezda o'tishi mumkin.
Shaklda. 3-rasmda IDE-da xato qanday ko'rsatilishi va mos keladigan orqaga qaytish ma'lumotlari ko'rsatilgan. Backtrace manba kodiga havola sifatida ishlaydi, bu esa ishlab chiquvchiga muammoning sababini tezda tashxislash imkonini beradi.
Mudflap-dan foydalanish ulanish vaqtini oshirishi va ish vaqtida ish faoliyatini kamaytirishi mumkin. “Mudflap: Pointer Use Checking for C/C++” maqolasida keltirilgan ma’lumotlar shuni ko‘rsatadiki, Mudflap yoqilgan bo‘lsa, ulanish vaqti 3…5 barobarga oshadi va dastur 1,25-5 baravar sekin ishlay boshlaydi. vaqt talab qiluvchi ilovalar bu xususiyatdan ehtiyotkorlik bilan foydalanishi kerak.Biroq, Mudflap xatoga moyil va potentsial halokatli kod konstruksiyalarini aniqlash uchun kuchli vositadir.QNX Mudflap vositasidan dinamik tahlil vositalarining kelgusi versiyalarida foydalanishni rejalashtirmoqda.

Guruch. 3- Xatoga sabab bo'lgan manba kodini topish uchun QNX Momentics IDE da ko'rsatilgan orqaga qaytish ma'lumotlaridan foydalanish.

Download 2,24 Mb.

Do'stlaringiz bilan baham:
1   ...   51   52   53   54   55   56   57   58   ...   89




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish