Разлика между Step Over и Step Into
Тези команди за отстраняване на грешки (клавиши F10 и F11) се различават само когато текущият оператор (т.е. този, който ще бъде изпълнен при следващото натискане на F10 или F11) е извикване на функция или метод. Както подсказва името Step Over, когато натиснете F10, дебъгерът преминава над повикването, изпълнява извиканата процедура с максимална скорост и спира на следващия оператор след извикването в извикващата процедура. В случай на Step Into, когато натискането на F11 трябва да извика процедурата, дебъгерът въвежда кода на извиканата процедура (функция или метод) и спира на израза вътре в нея. Когато извиквате стандартни библиотечни функции на C/C++, използвайте F10 вместо F11 (Информация за стъпка), за да заобиколите извикването и да избегнете отстраняване на грешки в кода на библиотеката.
Понякога трябва да натискате F10 или F11 твърде дълго, изпълнявайки операторите един по един. Например, в добре написани програми, които използват вече написани и отстранени по-рано алгоритми, преминаването през секции от очевидно правилни стари редове може да отнеме много време. В този случай изпълнете командата Go (F5). Той изпълнява вашата програма на пълна скорост до следващата контролна точка (обсъдена по-долу) или до края.
Едно от най-полезните приложения на командата Go е свързано с цикли за отстраняване на грешки. Задаването на точка на прекъсване в тялото на цикъла и многократното натискане на F5 казва на дебъгера да стартира тялото на цикъла на пълна скорост. Използвайте този подход, за да преброите правилните повторения.
Бягайте до курсора
Икони на лентата с инструменти за отстраняване на грешки
Когато започнете да отстранявате грешки в програма по някой от начините, описани в предишния раздел, лентата с инструменти за отстраняване на грешки се появява на екрана по подразбиране. Този панел може да се види на фигура 4. Той се намира в горната част на прозореца на работното пространство. Ако не ви харесватакава подредба, можете да плъзнете панела с мишката до всяко друго място. Разбира се, можете да плъзнете панела в главното меню като лента с инструменти.
H
a Фигура 5 показва увеличен изглед на лентата с инструменти за отстраняване на грешки. Следното обяснява всяка от иконите му в ред отляво надясно (първо горния ред, след това долния ред).Фиг.4. Увеличен панел за отстраняване на грешки.
P
is.5 Първоначално отстраняване на грешки в таблото за управление.Иконата за рестартиране (CTRL+SHIFT+F5) казва на програмата за отстраняване на грешки, че искате да стартирате програмата отначало, а не от текущата позиция за отстраняване на грешки.
Спрете отстраняването на грешки
Ако в който и да е момент от фазата на отстраняване на грешки разберете, че проектът или работното пространство трябва да бъдат актуализирани, можете да се върнете към менюто Build, като натиснете този бутон (SHIFT+F5), който излиза от програмата за отстраняване на грешки.
Изпълнение на прекъсване
Този бутон спира изпълнението на програмата в текущата точка
Приложете промените в кода, редактирайте и продължете
С командата Apply Code Changes (ALT+F10), която беше въведена във Visual C++ 6.0, можете да правите промени в изходния код, направени по време на процеса на отстраняване на грешки в програмата. Тази команда се използва, когато програмата работи или е на пауза в програмата за отстраняване на грешки. За да приложите промените, които сте направили в програмата, която отстранявате, изберете Прилагане на промените в кода от менюто Отстраняване на грешки или четвъртия бутон на лентата с инструменти.
Ако опцията Редактиране и продължаване е включена, можете да правите промени автоматично с помощта на командите Go и Step (когато автоматичната опция е изключена, можете да правите промени с командата Apply Code Changes.)
За да активирате/деактивирате автоматичните промени, изберете менюто Опции за инструменти и след това раздела Отстраняване на грешки. На страницата за отстраняване на грешки поставете отметка или изчистете квадратчето за отметка от командите за отстраняване на грешки, извикващи Редактиране и продължаване. Тъй като това квадратче за отметкасе отнася до опциите на инструмента, а не до опциите на проекта, настройката или изчистването му засяга всички проекти, с които работите в момента. Също така, промяната на състоянието на дадена опция не изисква да изграждате отново приложението си. Може да се промени точно в процеса на отстраняване на грешки.
Информацията, необходима за автоматично извършване на промени, се съхранява в базата данни на проекта. Когато създавате нов проект, съответната опция (Програмна база данни за редактиране и продължаване) се избира в диалоговия прозорец Настройки на проекта. Ако промените тази опция, Редактиране и продължаване се изключва.
Не активирайте опцията Редактиране и продължаване, ако отстранявате грешки в оптимизиран код. Той е несъвместим с оптимизациите и ще получите грешка на компилатора.
Видове промени, които не могат да бъдат автоматизирани
• Актуализиране на ресурсни файлове;
• Промяна на кода във файлове само за четене
• Промяна на оптимизирания ключов код /О1, /О2, /Og, /Ox, /Obl /Оb2;
• Модифициране на блокове за обработка на изключения;
• Модифициране на типове данни, включително дефиниции на класове, структури, обединения и изброявания;
• Въвеждане на нови типове данни;
• Премахване на функции или промени в прототипи;
• Промяна на глобалния или статичен код;
• Актуализиране на изпълними модули, заредени от друга машина и не изградени локално.
Ако направите една от горните промени и се опитате да направите модификации на работещия код, в прозореца за изход ще се появи съобщение за грешка.