You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Теперь достоверно известно, что ошибка находится в операторе while и что именно<br />
она вызывает аварийное завершение программы. Чтобы узнать, что именно происходит,<br />
следует остановить программу непосредственно перед выполнением оператора<br />
while и разобраться в ней более детально.<br />
Использование точек останова<br />
Пошаговый режим хорош только на этапе предварительного поиска ошибки. После<br />
того как стало известно, в каком месте программы возникла ошибка, удобнее<br />
всего воспользоваться возможностью отладчика, называемой точкой останова.<br />
Чтобы увидеть, как работает точка останова, вновь сбросьте отладчик с помощью<br />
команды Program Reset. Мы могли бы снова добраться до оператора while в пошаговом<br />
режиме, как это было сделано ранее, однако постоянно выполнять большие программы<br />
в пошаговом режиме было бы слишком утомительно. Вместо этого можно установить<br />
точку останова. Поместите курсор на операторе while и выполните команду<br />
Set breakpoint. <strong>Р</strong>едактор выделит эту строку красным цветом, как показано на рис. 11.6.<br />
lFC/W:rWde<br />
К file Edit Search BtiH Сотр1Ш0еЬия4¥оаее1 Options Hindows Helt<br />
h:/sss-cpp<br />
int nlargetlndex;<br />
int nSourcelndex;<br />
// найти конец первой строки<br />
«hile(szTargeU**nTargetIndex])<br />
[<br />
15N/17H<br />
1-IM-j<br />
// присординяет вторую строку к концу первой<br />
whilefszSourcelnSourcelnclexlJ<br />
(<br />
szTargetlnlargetlndex] -<br />
szSourcetnSourcelntlex];<br />
J :<br />
' 44:1<br />
is. •<br />
'1-2 Save h3 Open Fb ZOOM1-6 Next R1M9 ConpileI-IB Hcnu Я11«Н Quit<br />
<strong>Р</strong>ис. 11.6. Строка с точкой останова выделена красным цветом<br />
Точка останова заставляет программу работать в нормальном режиме до точки,<br />
в которой нужно остановить программу. После этого отладчик перехватывает управление<br />
и останавливает программу. Точки останова очень удобны, если вы уже знаете,<br />
где искать ошибку, или если просто возникла необходимость выполнить программу до<br />
определенного места.<br />
После установки точки останова выполните команду Go. Программа будет выполняться<br />
нормально до тех пор, пока не дойдет до оператора while. После этого она<br />
передаст управление отладчику.<br />
Осталось только узнать, что же вызывает ошибку.<br />
Просмотр и редактирование переменных<br />
Нет смысла вновь выполнять оператор while, поскольку точно известно, что<br />
программа будет прервана в результате ошибки. Чтобы понять, почему возникает<br />
ошибка, необходимо получить дополнительную информацию. Например, не помешало<br />
бы узнать, что находится в переменной nTarget Index непосредственно перед выполнением<br />
цикла while.<br />
Глава 11. Отладка программ наC++ 129