А.А. Белеванцев, С.С. Гайсарян, Л.С. Корухова, Е.А. Кузьменкова, В.С. Махнычев. Семинары по курсу Алгоритмы и алгоритмические языки (1108027), страница 16
Текст из файла (страница 16)
Дляобеспечения такой возможности компиляторы Си позволяют генерировать т.н.отладочную информацию, которая устанавливает соответствие между объектамипрограммы на языке Си и объектами машинной программы, и записыать ее в специальныечасти исполняемого файла программы. Без отладочной информации пользованиеотладчиком возможно только на уровне языка ассемблера. В компиляторе GCC выдачаотладочной информации включается опцией командной строки –g. Рекомендуется такжеотключать выполнение оптимизаций компилятора с помощью опции –O0, так какпостроение и поддержание отладочной информации в ходе проведения оптимизацийкомпилятором является весьма нетривиальной задачей и плохо поддерживаетсякомпиляторами.Стандартным отладчиком для Unix-подобных систем является отладчик GDB.
Этототладчик является инструментом командной строки, то есть управление отладчикомосуществляется введением команд с клавиатуры. В рекомендованной для проведенияпрактикума среде Code::Blocks реализована поддержка отладчика GDB в графическоминтерфейсе, то есть управление отладчиком возможно с помощью мыши и горячихклавиш, а информация отладчика выводится в отдельных графических окнах и в редактореисходного кода программы. Подробнее об этом можно узнать в документации к среде насайте http://wiki.codeblocks.org/index.php?title=Debugging_with_Code::Blocks.Часто используемые команды GDB показаны в таблице.КомандаОписаниеgdb <file> --args <args>загрузитьпрограммусзаданнымипараметрами командной строкиrun/continueзапустить/продолжить выполнениеbreak <function name/file:line number>завести безусловную точку остановаcond <bp#> conditionзадать условие остановки выполнения длянекоторой точки остановаwatch <variable/address>задать точку наблюдения (остановкавыполнения при изменении значенияпеременной или памяти по адресу) 2next/stepвыполнить текущую строку исходного кодапрограммы без захода/с заходом ввызываемые функцииprint <var>/set <var> = expressionпосмотреть/изменитьпеременных, памятиbtпосмотреть текущий стек вызовов2текущиезначенияТочки наблюдения рекомендуется задавать по именам глобальных переменных или по адресу, т.к.точка наблюдения за локальной переменной становится некорректной сразу по выходе переменной изобласти видимости.74ЛИТЕРАТУРА1.
Б. Керниган, Д. Ритчи. Язык программирования С. Второе издание. Издательскийдом “”Вильямс, 2010.2. Stephen Prata. C Primer Plus. Fifth Edition. Sams Publishing 2004. ISBN 0-672-32696-5.3. А.А. Белеванцев, С.С. Гайсарян, В.П. Иванников, Л.С. Корухова, В.А. Падарян.Задачи экзаменов по вводному курсу программирования (учебно-методическоепособие). М.: Изд. отдел ф-та ВМК МГУ имени М.В. Ломоносова, 2012.4. К.А. Батузов, А.А. Белеванцев, Р.А. Жуйков, А.О. Кудрявцев, В.А. Падарян,М.А. Соловьев. Практические задачи по вводному курсу программирования (учебноепособие).
М.: Изд. отдел ф-та ВМК МГУ имени М.В. Ломоносова, 2012.5. Т.В. Руденко. Сборник задач и упражнений по языку Си (учебное пособие). М.: Изд.отдел ф-та ВМК МГУ имени М.В. Ломоносова, 1999.6. Н.Д. Васюкова, И.В. Машечкин, В.В. Тюляева, Е.М. Шляховая. Краткий конспектсеминарских занятий по языку Си (учебно-методическое пособие). М.: Изд. отдел ф-таВМК МГУ имени М.В. Ломоносова, 1999.СОДЕРЖАНИЕВВЕДЕНИЕ .......................................................................................................................................................... 3 1. ЯЗЫК ПРОГРАММИРОВАНИЯ СИ.
ПРОСТЕЙШИЕ ПРОГРАММЫ............................................. 4 2. ТИПЫ ДАННЫХ. ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЙ ............................................................................... 6 2.1. ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЙ ..........................................................................................................................
7 2.1.1. О приведении типов операндов. ......................................................................................................... 8 2.2. ЛОГИЧЕСКИЕ ВЫРАЖЕНИЯ ......................................................................................................................... 10 2.3. ПОБИТОВЫЕ ОПЕРАЦИИ .............................................................................................................................
11 2.4. СТАРШИНСТВО ОПЕРАЦИЙ......................................................................................................................... 11 2.5. ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ ............................................................................................ 12 3. ВВОД/ВЫВОД. .............................................................................................................................................. 13 3.1. ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ ............................................................................................ 15 4.
ОПЕРАТОРЫ ................................................................................................................................................ 16 4.1. ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ ............................................................................................ 17 5. ФУНКЦИИ ....................................................................................................................................................
18 5.1. ФУНКЦИИ ................................................................................................................................................... 18 5.1.1. Понятие функции ..............................................................................................................................
18 5.1.2. Понятие указателя ........................................................................................................................... 19 5.2. РЕКУРСИВНЫЕ ФУНКЦИИ ........................................................................................................................... 21 5.2.1.
Рекурсия.............................................................................................................................................. 21 5.3. ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ ............................................................................................ 23 6. МАССИВЫ ....................................................................................................................................................
25 6.1. ОДНОМЕРНЫЕ МАССИВЫ, АДРЕСНАЯ АРИФМЕТИКА ................................................................................. 25 6.1.1. Одномерные массивы ........................................................................................................................ 25 6.1.2. Указатели и массивы ........................................................................................................................ 27 6.1.3.
Адресная арифметика ...................................................................................................................... 27 6.1.4. Передача массива в функцию ........................................................................................................... 29 6.2. СТРОКИ .......................................................................................................................................................
30 6.2.1. Строки и строковые константы .................................................................................................... 30 6.2.2. Работа со строками ......................................................................................................................... 31 6.3. ДВУМЕРНЫЕ МАССИВЫ (МАТРИЦЫ) ..........................................................................................................
33 6.3.1. Двумерные массивы и работа с ними .............................................................................................. 33 6.4. ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ ............................................................................................ 38 7. ДИНАМИЧЕСКАЯ ПАМЯТЬ. РАЗМЕЩЕНИЕ МАССИВОВ В ДИНАМИЧЕСКОЙ ПАМЯТИ.МАССИВЫ УКАЗАТЕЛЕЙ .................................................................................................................................. 40 7.1.
ДИНАМИЧЕСКАЯ ПАМЯТЬ. ФУНКЦИИ РАБОТЫ С ДИНАМИЧЕСКОЙ ПАМЯТЬЮ ........................................... 40 7.2. МАССИВЫ УКАЗАТЕЛЕЙ ............................................................................................................................. 43 7.3. РАЗМЕЩЕНИЕ МАТРИЦЫ В ДИНАМИЧЕСКОЙ ПАМЯТИ ...............................................................................