Π£Π²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ Π²Ρ Π΄ΠΎΠ±ΡΠ°Π»ΠΈΡΡ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
backtrace
:
(gdb)<b> backtrace</b>
#0 0x0804846f in sort (a=0x804a040, n=5) at debug3.c:23
#1 0x08048583 in main() at debug3.c:37
(gdb)
ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ° Ρ Π½Π΅Π΅ ΠΊΠΎΡΠΎΡΠΊΠ°Ρ, Ρ.ΠΊ. Π²Ρ Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ
ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ
sort
Π±ΡΠ»Π° Π²ΡΠ·Π²Π°Π½Π° ΠΈΠ·
main
Π² ΡΡΡΠΎΠΊΠ΅ 37 ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ°ΠΉΠ»Π° debug3.c. ΠΠ±ΡΡΠ½ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°
backtrace
ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΡΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ²Π΅Π» ΠΊ ΠΌΠ΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΡ
ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ°Π·Π½ΡΡ
ΠΌΠ΅ΡΡ.
Π£ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
backtrace
Π΅ΡΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½Π°Ρ ΡΠΎΡΠΌΠ°
bt
ΠΈ Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°ΠΌΠΈ Π΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°
where
, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ°Ρ ΡΡ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΡΠΎΡΠΌΠΎΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΡΠ»Π°Π΄ΡΠΈΠΊ Π²ΡΠ²Π΅Π» Π΄Π°Π½Π½ΡΠ΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈ Π² ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ΅ ΡΡΠ΅ΠΊΠ° ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ.
Π€ΡΠ½ΠΊΡΠΈΡ
sort
Π±ΡΠ»Π° Π²ΡΠ·Π²Π°Π½Π° Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ
Π°
, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ 0Ρ
804Π°040. ΠΡΠΎ Π°Π΄ΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ±ΡΡΠ½ΠΎ ΠΎΠ½ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
ΡΠ°Π·Π½ΡΠΉ ΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
Π‘Π±ΠΎΠΉΠ½Π°Ρ ΡΡΡΠΎΠΊΠ° 23 β ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° Ρ Π΄ΡΡΠ³ΠΈΠΌ:
/* 23 */Β if (a[j].key > a[j+1].key) {
ΠΡΠ»Π°Π΄ΡΠΈΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ, Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
. ΠΠΎΠΌΠ°Π½Π΄Π°
print
ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΈ Π΄ΡΡΠ³ΠΈΡ
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ:
(gdb) <b>print j</b>
$1 = 4
ΠΡ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
j
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
4
. ΠΡΠ±ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ gdb, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΠΎΠΉ, ΡΠΎΡ
ΡΠ°Π½ΡΡΡΡΡ Π΄Π»Ρ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠ΅Π²Π΄ΠΎΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
$1
ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 4, Π½Π° ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π²Π°ΠΌ ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ. ΠΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π±ΡΠ΄ΡΡ ΡΠΎΡ
ΡΠ°Π½ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
$2
,
$3
ΠΈ Ρ.Π΄.
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
j
, ΡΠ°Π²Π½ΠΎΠ΅ 4, ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠΏΡΡΠ°Π»Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
if (Π°[4].key > Π°[4+1].key)
Π£ ΠΌΠ°ΡΡΠΈΠ²Π°
array
, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
sort
, ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ½ΡΠΌΠ΅ΡΠΎΠ²Π°Π½Ρ ΠΎΡ 0 Π΄ΠΎ 4. ΠΠΎΡΡΠΎΠΌΡ Π΄Π°Π½Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°
array[5]
. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΈΠΊΠ»Π°
j
ΠΏΡΠΈΠ½ΡΠ»Π° Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΡΠ»ΠΈ Π²Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°Π²Π΅ΡΡΠΈΠ»Π°ΡΡ Π² ΡΡΡΠΎΠΊΠ΅ 25, ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»Π° ΡΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°, ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° Π²Π·ΡΠ»Π°ΡΡ Π·Π° ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
/* 25 */Β Π°[j] = a[j+1];
ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈ
j
, ΡΠ°Π²Π½ΠΎΠΉ 4, Π΄Π°Π΅Ρ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅
Π°[4] = Π°[4+1];
ΠΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅
print
. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ gdb Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΠΈ Π»ΡΠ±ΠΎΠ΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠ° Π‘ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ.
(gdb) <b>print Π°[3]</b>
$2 = {data = "alex", '\0' <repeats 4091 times>, key = 1}
(gdb)
ΠΡΠ»Π°Π΄ΡΠΈΠΊ gdb ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΏΡΠ΅Π²Π΄ΠΎΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π²ΠΈΠ΄Π°
$<<i>Π½ΠΎΠΌΠ΅Ρ</i>>
. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΠ΅Π³Π΄Π° Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² ΠΏΡΠ΅Π²Π΄ΠΎΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
$
, Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ β Π²
$$
. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π΄ΡΡΠ³ΠΎΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
(gdb) <b>print j</b>
$3 = 4
(gdb) <b>print a[$-1].key</b>
$4 = 1
ΠΡΠ²ΠΎΠ΄ Π»ΠΈΡΡΠΈΠ½Π³Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ gdb Π²ΡΠ²Π΅ΡΡΠΈ Π½Π° ΡΠΊΡΠ°Π½ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
list
. ΠΠ½Π° Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π°, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΄ΠΎΠΌ Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠ΅ΠΉ. ΠΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Ρ
list
Π²ΡΠ²Π΅Π΄ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΠΊΡΡ. ΠΠΎΠΌΠ°Π½Π΄Π΅
list
ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΡΠ΅ΠΊΡΡΠ° Π² ΡΡΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠ°ΡΡ Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΡΡΡΠΎΠΊ, ΠΈ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½Π°Ρ
ΠΎΠ΄ΡΡΠΈΠΉΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ.
(gdb) <b>list</b>
18 /* 18 */Β int s = 1;
19 /* 19 */
20 /* 20 */Β for(; i < n && s != 0; i++) {
21 /* 21 */Β Β s = 0;
22 /* 22 */Β Β for(j = 0; j < n; j++) {
23 /*Β 23 */Β Β Β if(a[j].key > a[j+1].key) {
24 /* 24 */Β Β Β item t = a[j];
25 /* 25 */Β Β Β a[j] = a[j+1];
26 /* 26 */Β Β Β Β a[j+1] = t;
27 /* 27 */Β Β Β s++;
(gdb)
Π ΡΡΡΠΎΠΊΠ΅ 22 Π·Π°Π΄Π°Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΈΠΊΠ»Π° Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ
j
ΠΌΠ΅Π½ΡΡΠ΅
n
. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅
n
ΡΠ°Π²Π½Π° 5, ΠΏΠΎΡΡΠΎΠΌΡ Ρ
j
Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 4, ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠ΅. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ 4 ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ
Π°[4]
Ρ
Π°[5]
ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΈΡ
ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ β ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠΊΠ»Π° Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
j < n-1
.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π²Π½Π΅ΡΠ΅ΠΌ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ debug4.c, ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ Π΅Π΅ ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ½ΠΎΠ²Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ.
/* 22 */Β Β for(j = 0; j < n-1; j++) {
$ <b>cc -g -o debug4 debug4.Ρ</b>
$ <b>./debug4</b>
array[0] = {john, 2}
array[1] = {alex, 1}
array[2] = {bill, 3}
array[3] = {neil, 4}
array[4] = {rick, 5}
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½Π° Π²ΡΠ²Π΅Π»Π° Π½Π΅Π²Π΅ΡΠ½ΠΎ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ. ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ gdb Π΄Π»Ρ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.