Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » С.В. Герасимов, И.В. Машечкин, М.И. Петровский и др. Инструментальные средства разработки ПО в ОС UNIX

С.В. Герасимов, И.В. Машечкин, М.И. Петровский и др. Инструментальные средства разработки ПО в ОС UNIX, страница 4

PDF-файл С.В. Герасимов, И.В. Машечкин, М.И. Петровский и др. Инструментальные средства разработки ПО в ОС UNIX, страница 4 Операционные системы (38616): Книга - 3 семестрС.В. Герасимов, И.В. Машечкин, М.И. Петровский и др. Инструментальные средства разработки ПО в ОС UNIX: Операционные системы - PDF, страница 4 (386162019-05-08СтудИзба

Описание файла

PDF-файл из архива "С.В. Герасимов, И.В. Машечкин, М.И. Петровский и др. Инструментальные средства разработки ПО в ОС UNIX", который расположен в категории "". Всё это находится в предмете "операционные системы" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 4 страницы из PDF

Созданиеcore-файлов может быть по умолчанию отключено. Например,$ ./progHello, I'm Eddie!Abortedзавершилось, но core-файла нет$запускаем программувыполнение программы аварийноДля того, чтобы разрешить создание core-файлов нужно снятьограничение на максимальный размер core-файлов.$ ulimit -c unlimitedТогда работа программы может выглядеть примерно так:$ ./progHello, I'm Eddie!Aborted (core dumped)$ lsкаталогеcore.7911 prog prog.c$запускаем программусмотрим список файлов в текущемпоявился core-файл core.7911В данном примере имя core-файла включает в себя PIDпроцесса, при завершении которого был создан core-файл, но иногдатакой файл называется просто core.Для посмертной отладки GDB запускается с двумяаргументами: первый — это имя исполняемого файла, а второй —это имя core-файла.

Примерный сценарий работы с отладчиком вэтом случае приведен ниже.$ gdb ./prog core.7911запускаем посмертную отладкуGNU gdb (GDB) Fedora (7.2-51.fc14)Copyright (C) 2010 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later<http://gnu.org/licenses/gpl.html>This is free software: you are free to change andredistribute it.20There is NO WARRANTY, to the extent permitted by law.Type "show copying"and "show warranty" for details.This GDB was configured as "i686-redhat-linux-gnu".For bug reporting instructions, please see:<http://www.gnu.org/software/gdb/bugs/>...Reading symbols from /home/cher/gdb/prog...done.[New Thread 7911]Core was generated by `./prog'.Program terminated with signal 6, Aborted.#0 0xb782a424 in __kernel_vsyscall ()(gdb) btпросматриваем стек вызовов#0 0xb782a424 in __kernel_vsyscall ()#1 0x009e32f1 in raise (sig=6) at../nptl/sysdeps/unix/sysv/linux/raise.c:64#2 0x009e4d5e in abort () at abort.c:92#3 0x080483fe in main () at prog.c:6(gdb) quitзавершаем отладку$Основные команды отладчика Ниже описываются основные команды отладчика GDB.Команды вводятся с консоли после отображения отладчиком “(gdb)”– строки-приглашения ко вводу очередной команды.quit – завершение работы отладчика.

Если программазапускалась из-под отладчика (первый способ отладки), то вместе сзавершением отладки завершится и программа. Если отладчикподключался к работающей программе, то программа продолжитвыполнение в обычном режиме. Если отладчик запускался дляисследования core-файла, то отладчик просто завершается, так какникакого отлаживаемого процесса не существует. Вместо наборакоманды quit можно просто нажать комбинацию Ctrl-D –стандартная комбинация, обозначающая признак конца файла(конец ввода) в Unux.run – запустить программу на выполнение. Команда доступнатолько, если программа еще не запущена.

При подключении кработающему процессу или исследовании core-файлов даннаякоманда не доступна. Допускается указывать аргументы команднойстроки и перенаправление потоков ввода-вывода, как если быпрограмма запускалась командным процессором. Пример:21(gdb) run < 001.in > 001.outЗдесь программа запускается на выполнение с файлом 001.in,перенаправленным на стандартный поток ввода, и файлом 001.out, вкоторый перенаправляется вывод на стандартный поток вывода.Выполнение программы может быть прервано в любой моментнажатием на комбинацию Ctrl-C. Отладчик приостановитвыполнение программы и выдаст приглашение ко вводу очереднойкоманды отладчика.Выполнение программы также приостанавливается приполучении программой любого сигнала, при завершении программылибо достижении точки останова.bt (или backtrace) – распечатать стек вызовов.

Стек вызововпечатается от самой вложенной функции к функции main. Длякаждого стекового фрейма печатается адрес в коде точки вызова,название функции и параметры, переданные в функцию, а такжепозиция в исходном коде. Команда bt full дополнительно печатаетзначения локальных переменных.(gdb) bt full#0 0xb78c1424 in __kernel_vsyscall ()No symbol table info available.#1 0x00a8788d in ___newselect_nocancel ()at ../sysdeps/unix/syscall-template.S:82No locals.#2 0x0806e502 in do_work () at userlist-server.c:10244addr = {sun_family = 1,sun_path = "\000\060\060\060\071b", '\000'<repeats 101 times>}val = 0max_fd = 7timeout = {tv_sec = 0, tv_usec = 702429}rset = {fds_bits = {80, 0 <repeats 31 times>}}wset = {fds_bits = {0 <repeats 32 times>}}p = 0x0q = 0x9286e68saved_fd = 6up – переход на указанное количество фреймов вверх по стекувызовов функций. Если аргумент у команды не указан, он22принимается равным 1 (переход на один фрейм вверх, то естьпереход к функции, которая вызвала текущую функцию).down – переход на указанное количество фреймов вниз постеку вызовов функций.

Если аргумент у команды не указан, онпринимается равным 1 (переход на один фрейм вниз, то есть переходк функции, которая была вызвана в текущей точке текущейфункции).info frame – получить информацию о текущем стековомфрейме.info locals – получить информацию о значениях локальныхпеременных текущего стекового фрейма.p (или print) – напечатать значение выражения. Аргументомкоманды может быть почти произвольное выражение языка Си, дажевключающее в себя вызовы функций программы, если, конечно,отлаживаемый процесс существует.

Таким образом, вызовыфункций недоступны при «посмертной» отладке. Если аргументкоманды не указан, берется аргумент, который был указан в командеp в последний раз.(gdb) p userпечатаем значение переменной user$1 = (const unsigned char *) 0x0(gdb) pеще раз печатаем значение переменной user$2 = (const unsigned char *) 0x0(gdb)l (или list) – напечатать исходный код. Команду можноиспользовать во многих вариантах, часть из которых перечисленаниже.(gdb)(gdb)(gdb)файла(gdb)(gdb)(gdb)ll l 200напечатать очередные 10 строк исходного файланапечатать предыдущие 10 строк исходного файланапечатать 10 строк в окрестности 200 строки текущегоl prog.c:200l mainl *0x0806e502напечатать 10 строк в окрестности 200 строки файла prog.cнапечатать 10 строк в окрестности начала функции mainнапечатать 10 строк в окрестности кода по указанному адресуb (или break) – установка точки останова.

Параметромкоманды является точка в программе, помечаемая как точкаостанова. Команду можно использовать во многих вариантах, частьиз которых перечислена ниже.23(gdb)(gdb)(gdb)(gdb)bbbbmain200prog.c:200*0x0806e502установить точку останова в начале функции mainустановить точку останова на 200 строке текущего файлаустановить точку останова на 200 строке файла prog.cустановить точку останова по указанному адресуc (или continue) – продолжить выполнение программы.finish — продолжить выполнение программы до достиженияконца текущей функцииn (или next) — сделать указанное количество шаговвыполнения (по умолчанию 1).

Вызовы функций рассматриваютсякак одна инструкция, то есть вызванные функции выполняются вобычном, а не пошаговом режиме.s (или step) — сделать указанное количество шаговвыполнения программы (по умолчанию 1). При вызовах функцийвыполнение входит в функции в пошаговом режиме.Сборка программы с помощью GNU Make Программаmakeпредназначенадляотслеживаниязависимостей одних файлов от других файлов, выявления«устаревших» файлов при помощи сравнения времен модификациифайлов и выполнения команд для «обновления» устаревших файлов.Make является представителем систем автоматизации сборки(англ., build automation system), позволяющих автоматизироватьпроцессы трансляции, компоновки, запуска модульных тестов иразвертывания системы за счет описания соответствующихсценариев на специальном языке.Сценарии Make описываются в т.н. файле проекта.

Проектомназывается совокупность файлов, зависящих друг от друга. Файлописания проекта перечисляет зависимости между файлами и задаеткоманды для обновления зависимых файлов. Имя файла описанияпроекта задается опцией –f командной строки программы make и поумолчанию предполагается равным Makefile или makefile. Если имяфайла проекта явно не задано, при запуске утилита ищет в текущемкаталоге файл с указанными выше именами, и, если такой файлсуществует, выполняет команды из него.Таким образом, в простейшей форме командаmake24по описанию проекта в файле Makefile или makefile определяет,какие файлы устарели и нуждаются в обновлении и запускаетсоответствующие команды.Форма описания проектов в файле Makefile достаточно сильноварьируется от версии к версии.

Утилита make на системах FreeBSDплохо совместима с утилитой GNU Make, которая на FreeBSDобычно называется gmake. В данном разделе будет рассматриватьсяименно GNU make (http://www.gnu.org/software/make/).Одно из применений утилиты make – отслеживаниезависимостей между исходными и объектными файлами в проектахна языке Си или Си++ и управление компиляцией программы – тоесть сборка проекта. Использование make с этой цельюрассматривается в данном разделе.Обычно программы на языках Си или Си++ представляютсобой совокупность нескольких .c (.cpp) файлов с реализациямифункций и .h файлов с прототипами функций и определениямитипов данных.

Как правило, каждому .c файлу соответствует .h файлс тем же именем.Предположим, что разрабатываемая программа называетсяearth и состоит из файлов arthur.c, arthur.h, trillian.c, trillian.h,prosser.c, prosser.h. Разработка программы ведется в POSIX-среде сиспользованием компилятора GCC.Простейший способ скомпилировать программу — указать всеисходные .c файлы в командной строке gcc:gcc arthur.c trillian.c prosser.c -o earthКомпилятор gcc выполнит все этапы компиляции исходныхфайлов программы и компоновку исполняемого файла earth.Обратите внимание, что в командной строке gcc указываются только.c файлы и никогда не указываются .h файлы.Компиляция и компоновка при помощи перечисления всехисходных файлов в аргументах командной строки GCC допустималишь для совсем простых программ. С ростом числа исходныхфайлов ситуация очень быстро становится неуправляемой.

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