.
. . .
560
544
uchun
(O ne Bl oc kI nfoon ebl ock: blks) {
3DScope to'g'ridan-to'g'ri infraqizil kodni tahlil qilib, turli halqalarning bajarilish yo'lini
chiqaradi. Oson tushunish uchun biz qog'ozning qolgan qismida manba kodi yordamida
bajarish yo'llarini ko'rsatamiz.
. . .
550
139 }
catch
( T soat qarz th ) {
. . .
206 chiqish tHa n dl er. ogohlantirish (...);
207 }
catch
( T soat qarz th ) {
185
urinib
ko'ring
{186
if
( kalit ==
nu ll )
120
wh i le
(! ma'lumotlar F ile. i sEOF ( ) ) {
549
uchun
( int j = 0 ; j < uzunlik ; j ++) {
559 }
560
128 Dek o ra te dKe y tugmasi =
nu ll ;
129
urinib
ko'ring
{130 kalit = . . . ; //
th r ws E xcep ti on
. . .
. . .
. . .
549
uchun
( int j = 0 ; j < uzunlik ; j ++) {
. . . .
141 }
559 }
187
. . .
. . .
. . .
571 }
140
. . .
. . . . . .
. . .
yangi
IO E xatosini tashlash (...);
188
agar
(ma'lumotlar S hajmi > uzunligi) .
S tringrack = on ebl ockracks [ j ] ;
255 }
256 }
257
550 S tringrack = ebl ockracks ustida [j];
3-rasm: Hadoop v0.23.0 da CombineFileInputFormat sinfidagi
manba kod bloki va mos keladigan CFG bilan ichki o'rnatilgan
halqalar misoli .
4-rasm: Cassandra v2.0.8 da Scrubber sinfidagi manba kodi bloki
va mos keladigan CFG bilan istisnolarni qayta ishlash
konstruksiyalarini o'z ichiga olgan halqa misoli .
2-rasm: Hadoop v0.23.0 da CombineFileInputFormat sinfidagi
manba kod bloki va mos keladigan CFG bilan oddiy halqa misoli .
185
256
186
257
187
188
128
129
140
130
...
207
139
120
141
255
206
549
550
...
...
559
571
...
544
560
572
2.2 Xato nomzodlarini aniqlash DScope
1) dastur funksiyalaridagi barcha sikllarning CFG-larini kesib o'tish
orqali ularning aylanish yo'llarini olish va 2) ushbu tsikl yo'llarining
chiqish shartlari kirish/chiqarishga bog'liqligini tekshirish orqali
nomzodning korruptsiyaga uchragan xatolarini aniqlaydi.
SoCC'18, 2018 yil 11–13 oktyabr, Karlsbad, CA, AQSh
xato [44]) tsikldan chiqish sharti hech qachon bajarilmasligiga olib kelishi mumkin va
shuning uchun innite loop dasturining osib qo'yilishi xatosi yuzaga keladi.
Biz pastadir yo'lini CFG ni kesib o'tish orqali osonlikcha ajratib
olishimiz mumkin. Masalan, 2-rasmda oddiy loop3 ning manba kodi
va uning CFG ko'rsatilgan . DScope halqa yo'lini yaratadi {549, 550, ..., 559, 549}.
DScope
Murakkab looplarning uchinchi guruhi istisnolarni o'z ichiga
oladi. Ushbu halqalar uchun ba'zi pastki yo'llar istisnolardan
foydalanish tufayli amalga oshirib bo'lmaydigan holga keladi, bu
bizning tsikldan chiqish holatini tekshirishda hisobga olinmasligi
kerak. Misol uchun, 4-rasmda istisnolardan foydalanishni o'z ichiga
olgan while tsikli ko'rsatilgan. 130-qatordagi tayinlash bayonoti o'ng
Do'stlaringiz bilan baham: |