Главная » Просмотр файлов » GCC - The Complete Reference

GCC - The Complete Reference (537669), страница 58

Файл №537669 GCC - The Complete Reference (GCC - The Complete Reference) 58 страницаGCC - The Complete Reference (537669) страница 582015-07-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 58)

Следующий сеанс отладки демонстрирует информацию, которую выводит отладчик ддЬ, а также содержит пример использования других команд, позволяющих получать дополнительную информацию: 8 ддЬ Еа11доип соте Соте иав депегатеа Ьу 'Еа11доип'. Ргодтав Еегю1патеа иЕЕЬ вьдпа1 11, яедюептат1оп Еаи1т. аеааЕпд вувьо1в Етав /11Ы11Ьс.во.б...допе. Ьоааед вуюЬо1в Еог /11Ы11Ьс.во. б аеад1пд вувЬо1в Егов /11Ы1д-11пих.

во. 2... допе. Ьоадед вуюЬо1в Еог /11Ы1д-11пих. во. 2 $0 Ох080483а0 1п ветЬаа () ат Еа11доип.с:14 14 чпоипеге = "ТЬ(в 1в а втгьидКп"; (ддЬ) рг1пт поииеге 81 = (сЬат **) ОхО (ддЬ) Ьт $0 Ох080483аО 1п ветбад () ат Еа11аоип.с:14 2бО Часть )И. Внутренняя структура и окружение 81 ОхО8О48Звв Еп пвьп (егдс=1, вгд =ОхЬЕЕЕЕввс) ве Ее11ктс п.с:В 82 Ох40042316 1п 11Ьс веегг пв1п (пв1п=ох8048390 <шв1п>, агдс 1, пЬр вт=охЬЕЕЕЕа8с, Епьг=ох8048230 < 1п1Г>, Езпь=ох8048410 < Еьпь>, гг1с Е1п1=0х4000к)2Ес < 61 Еьпь>, вгвсИ епс=охЬЕЕЕЕа7с) ве ../вувсерв/депег1с/11Ьс-вгаге.ск129 (даЬ) чп1е $ В приведенном примере на экран выводится строка кода с ошибкой (та строка, в которой предпринимается попытка записи по абсолютному адресу "О").

Выводимая информация включает имя функции и имя файла, показывая положение этой строки исходного кода. Команда ргйпг используется для проверки того, что указатель по>)Ьеге указывает на ошибочный адрес, а команда Ье используется для обратной трассировки кода, которая показывает, каким путем программа пришла к аварийному завершению. Кроме того, имеется целый ряд других команд, которые позволяют получить достаточно информации дпя немедленного устранения ошибки в программе.

Подключение отладчика к выполняемой программе Возможность присоединения отладчика к выполняемому процессу может быть весьма полезной. Если, например, программа после некоторого времени входит в бесконечный цикл, то можно подключить отладчик к программе и точно определить место, в котором она зациклилась. Еше одна ситуация, в которой желательно подключение отладчика к выполняемой программе, может возникнуть при работе с интерактивной программой, когда она начинает делать что-то не то, В этом случае отладчик можно подключить к программе и отследить причину выполнения некорректных действий.

Для подключения отладчика к выполняемому процессу необходимо соблюдение двух условий. Во-первых, выполняемый процесс опять-таки должен быть откомпилирован с одной из форм опции -д. А во-вторых, необходимо как-то определить идентификатор процесса !Р!Р— Ргосеае ! Е)). Если идентификатор Р! (/ процесса не известен, то дпя его определения можно воспользоваться командой рв. Аргументы командной строки для команды рв в разных системах могут отличаться, поскольку разные операционные системы предоставляют информацию о выполняемых процессах в различных форматах.

Типичную форму команды рв показывает следуюшнй пример, в котором она определяет, что идентификатор процесса 1оорег равен 29627: 8 рв вх ( дгер 1ссрег 29627 рев/4 К 1.58 1ссрег 12298 ргв/4 В О:ОО дгер 1ссрег Результаты выполнения команды рв указывают на то, что процесс 1оорег является активным (в означает "гнпп)пя", то в стадии выполнения).

Фактически програм- Глава ) 2. Использование отладчика 6Ы0 26 1 ма 1оорег. с была специально написана с бесконечным циклом — для демонстра- ции подключения отладчика дйЬ к выполняемому процессу: /* 1оорег.с */ иоьй доагоипй(1пе)к ьпс ваап(ьпе агдс,сцаг *агд1т()) ( ргьпег(<веагеейтп")/ доагоипй(20)/ ргьпст("йопекп"); ) чоьй доагоипй(ьпе соипеег) ( 1пе 1 = 0) иЬ11е(1 < соипеег) ( 16(1++ == 17) 1 = 10( ) ) Основная функция программы 1оорег вызывает функцию доагоипй ( ), выполнениее которой не прекращается, поскольку значение переменной цикла 1 никогда не достигает значения соипеег.

Приведенную программу можно откомпилировать с генерацией отладочной информации с помощью следующей команды: 8 дсс -д 1оорег.с -о 1оорег Для запуска программы в фоновом режиме введите команду; б 1оорег а Используемая для запуска программная оболочка„как правило, выведет идентификатор нового процесса. Если же идентификатор не выводится, для его определения можно воспользоваться командой рв. Приведенная ниже последовательность показывает порядок подключения отладчика к процессу и его использование для обнаружения ошибки.

В командной строке на запуск отладчика указывается имя находящегося на диске двоичного файла программы и идентификатор процесса: 8 дйЬ 1оорег 29627 йссасдьпд Ео ргодгав: /иове/ггей/1оорег, ргосевв 29627 веай1пд вушьо1в ггош /11Ы11Ьс. во. б...йопе. ьоайей вушЬо1в гог /11Ы11Ьс.во.б аеайьпд вуаЬо1в гхош /11Ы1й-11пих.во.2...йопе. Ьоайей вувЬо1в бог /11Ы1й-11пих.во.2 Ох080483еа ьп доагоипй (соипсег=20) аг 1оорег.с:14 14 1г(1++ == 17) (дйЬ) йьвр1ау 1 1: 1 = 14 (дйЬ) веер 13 иЬ11е(1 < соипсег) [ 1: 1 = 15 (дйЬ) всер 14 16(1++ = 17) 2б2 Часть ]и.

Внутренняя структура и окружение 1: 1 = 15 [дйЫ веер 13 еЬ11е(1 < соппеег) ( 1: 1 = 16 (ддЫ веер 14 16(1++ == 17] 1: 1 16 (ддЬ) веер 13 еЬ11е(1 < соипеег] ( 1: 1 = 17 <ддЫ веер 14 11(1++ == 17) 1: 1 = 17 (ддЫ веер 15 — 10) 1: 1 = 18 <ддЫ всер 13 еЬ11е(1 < соппеег) 1с 1 = 10 (ддЫ веер 14 15(1++ == 17] 1: 1 = 10 <ддЫ веер 13 нЬ11е(1 < соипеег) ( 1: 1 = 11 (дйЬ) дп1е тье ргодгеп 1в гиппапд. Яи1е епунеу (апй йееась 1е)? (у ог и) у Эееесдапд Егоп ргодгем: /Ьоте/эгей/1оорег, ргосевв 29627 Ф Как видно из первых строк листинга, вначале отладчик считывает бинарный файл с лиска и загружает из программы и используемых библиотек таблицы перекодировки символов. Если библиотеки компилировались с включением отладочной информации, то при необходимости можно выполнять трассировку кода и в библиотеках, но в приведенном прос~ом примере отладчик используется только для трассировки цикла в функции доегоипй(].

Далее отладчик дйь подключается к процессу, останавливает его выполнение на текущей инструкции и выводит соответствующую ей строку исходного кода с ее номером в исходном файле. На данном этапе можно установить точки останова, просмотреть значения переменных и выполнить любые другие действия, обычно предпринимаемые в процессе отладки. В приведенном примере команда й1вр1ау используется лля вывода значения переменной з.

при каждом останове программы. Для отслеживания значения этой переменной при выполнении нескольких строк цикла используется серия команд веер. Они показывают, что значение перел(енной 1 изменяется таким образом, что цикл не может прийти к завершению. В конце сеанса отладки с помощью команды дпйс отладчик отсоединяется от процесса и позволяет продолжить его выполнение.

В приведенном примере после отключения отладчика дйЬ программа продолжит выполнение бесконечного цикла, пока она не будет остановлена каким-нибудь другим способом. Процесс снова нор- Глава 13. Использование отладчика 6йц 2б3 Сводная таблица команд отладчика Отладчик дст12 в интерактивном режиме поддерживает огромное количество команд. Для их просмотра в командной строке дб12 можно ввести команду тте1р. На экране появится длинный список категорий команд. В некоторых категориях приведены описания команд, в то время как в других находятся подкатегории, содержащие списки команд. В таблице 13.3 приведены только некоторые наиболее часто используемые команды, которые нужны практически в любом сеансе отладки.

Таблица 13.3. Часто используемые команды отладчика ддЬ вемееле Описание Устанавливает слежение за значением. При каждой операции считывания ипи записи в области памяти, соответствующей указанному имени символа, выполнение программы останавливается. Также см. команды хиассь инассь. анаьсь Выводит обратный след вызовов всех стексвых Фреймсв, показывающий вызовы функций и значения их аргументов, через которые выполнение дошло до данной точки. Эта команда имеет короткую форму ьс. Ьасььхасе Устанавливает точку останова, которая останавливает выполнение программы на указанной строке кода ипи в указанной функции.

Снимает точку остансва в ранее указанной с помощью команды ьхаах строке кода ипи функции. Ьхеаи с1аах Продолжает выполнение программы, остановленной отладчиком. сопь1ппе скх1-с Прерывает выпопнение программы так, как еспи бы в выполняемой строке быпа спредепена точка останова. Отключает определенные точки остансва по их номерам. асваЬ1а 61вр1 ау При каждом останове программы выводит на экран значение указанного выражения. Включает определенные точки астапова по их номерам.

апаЬ1а Е1п1аЬ Продолжает выполнение программы, остановленной отладчиком, до выхода из текущей функции. Устанавпивает счетчик игнорирования точки сстансва. Так, например, команда 1рпоха 4 21 указывает, что до остановки на точке останова с номером 4 она должна быть пройдена 23 раза. 1епохе ЕпЕо Ьхеаьро1пьв Выводит состояние и описание дпя всех точек астапова с их номерами. Выводит состояние и описание для всех ранее введенных команд е1ар1ау, включая их номера. 1пЕо 61ар1ау Завершает выпспнение текущего процесса. Выводит на экран десять строк кода. Если в командной строке нет других аргументов, выводимые строки начинаются с текущей строки.

Если в команде указано имя функции, выводимые строки начинаются от начала функции. Если указан номер строки, тс эта строка будет выведена первой. 11 вь мально выполняется, и в любой момент к нему снова можно подключить отладчик. Для остановки процесса 1оорег перед командой дцзс можно было бы выполнить команду 1с111.

Характеристики

Тип файла
DJVU-файл
Размер
6,08 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6358
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее