05.09.2016 Views

Стефан Р. - С++ Для чайников

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!