Средства для создания приложений в ОС UNIX (Лабораторная работа № 5)

Страницы работы

Содержание работы

Министерство образования и науки РФ

НГТУ

Кафедра ПСиБД

Лабораторная работа №5

Средства для создания приложений в ОС UNIX

Факультет: ПМИ                 

Группа: ПМ-73

Студенты:  Базина Д.А.

                    Кулагина М.В.  

Преподаватель: Долозов Н.Л.      

Новосибирск

2009

1)Цель работы:

Выполнить  анализ  основных  этапов   разработки  и  отладки приложений в ОС UNIX (Linux).  Приобрести практические навыки по использованию средств SCO  FSF  при  анализе и компиляции  исходного  кода,  тестировании  и  отладке  программ, написанных на языке Си.

2)Выполнение работы:

1. Осуществите вход в систему.

2. Запустите mc - экранный интерфейс для OC UNIX.

3. В домашнем каталоге создайте подкаталог examples.

mkdirexamples

4. Осуществите поиск на магнитном диске программы testcase.c(команда find).

В лабораторной работе №4 скопировали в каталог practice.

5. Скопируйте файл testcase.c в ваш подкаталог examples  под именем abcd.c.

cp ~/practice/testcase.c ~/examples/abcd.c

6. Выполните компиляцию программы abcd.c

cc–о abcd.c

abcd.c: В функции 'PrintWords'

abcd.c:28: ошибка: отсутствует терминирующий символ "

abcd.c:33: ошибка: expected expression before 'int'

abcd.c:63: ошибка: expected declaration or statement at end of input

abcd.c:63: ошибка: expected declaration or statement at end of input

Исправьте  синтаксические  ошибки.  Коррекция  файла  abcd.c должна быть выполнена с помощью редактора Vi.

vi ~/examples/abcd.c

Исправили ошибку в 28 строке (с помощью редактора vi): заменили символ ‘0’ на недостающую закрывающую кавычку.

7.  После устранения  всех  синтаксических  ошибок передайте файл abcd.c под управление инструментального средства CVS.

Удалите файл  abcd.c  с  магнитного  диска.  Все последующие пункты лабораторной работы,  связанные с коррекцией файла abcd.c, должны быть выполнены под контролем CVS.

  1) создание репозитория

      mkdir ~/cvsroot

      cvs –d ~/cvsroot init

  2) создание рабочего каталога

      mkdir ~/workdir

      mkdir ~/workdir/hello

      cp ~/examples/abcd.c ~/workdir/hello/abcd.c

  3) свяжем рабочую директорию с репозиторием

      cd ~/workdir

      cvs –d ~/cvsroot checkout –l .

  4) передача файлов под управление cvs

      cvs –d ~/cvsroot add hello

      cvs –d ~/cvsroot add hello/abcd.c

      cvs –d ~/cvsroot commit

8.  Создайте  в поддиректории examples  make-файл (makefile), приведенный на  с. 58.    Для создания этого файла используйте редактор Vi.  Далее  различные  варианты  построения исполняемого модуля должны быть получены с помошью программы make.

   vi makefile

#

# Makefile for abcd.c

#

#  Compile abcd.c normaly

abcd:abcd.c

   g cc –g  abcd abcd.c

# Compile abcd.c be using debugging

testabcd:abcd.c

    gcc -o testabcd -g abcd.c

# End Makefile for abcd.c

9.   Выполните   отладку   программы   abcd.c.  Для  отладки используйте  программу  gdb.  Каждое  исправление  в программе abcd.c  должно   сопровождаться   комментарием  инструментального средства CVS.  Комментарий  должен  содержать  текст  на русском языке,  поясняющий сущность  исправлений (например  номер строки программы abcd.c и причина исправления).

1)cvs –d ~/cvsroot checkout hello

cvs checkout: Updating hello

U hello/abcd.c

gcc -g hello/abcd.c

/tmp/cce5uxln.o: In function `main':

/home/brigades/pm7303/examples/abcd.c:60: warning: the `gets' function is dangerous and should not be used.

./a.out

this is the test

./a.out -t

this the test

gdb a.out

(gdb) break 27

Breakpoint 1 at 0x4005b2: file abcd.c, line 27.

(gdb) run

Starting program: /home/brigades/pm7303/workdir/hello/a.out

this is the test

Breakpoint 1, PrintWords (wc=4, match=0 '\0') at abcd.c:27

27  if (*cp== match)  /* Found a match? Write the word on stdout. */

(gdb) print *cp

$1 = 0 '\0 '

(gdb) print match

$2 = 32 ' '

vi hello/abcd.c

исправили в 56 строке match=’ ’   на  match=’\0’

      
     cvs –d ~/cvsroot commit hello/abcd.c
    Checking in hello/abcd.c;
    /home/brigades/ pm7303/cvsroot/hello/abcd.c,v  <--  abcd.c
    new revision: 1.2; previous revision: 1.1
    done
     rm -r hello


  2) cvs –d ~/cvsroot checkout hello

     cvs checkout: Updating hello

  U hello/abcd.c

     gcc -g hello/abcd.c
/tmp/ccmDV9tj.o: In function `main':
    hello/abcd.c:60: warning: the `gets' function is 
    dangerous and should not be used.

Похожие материалы

Информация о работе