| 6. Prostredky pro programovani v jazyce
C
 Standardni dodavka OS UNIX
obsahuje kompilator jazyka C a nektere
 pomocne programy pro usnadneni
prace programatora.
 
  
6.1 Kompilator C
 Zpracovani kompilatorem jazyka
C probiha v nekolika fazich.
 Obvykle je zdrojovy text
souboru s priponou .c prelozen
 makroprocesorem (soubor .i).
Vysledny text je prelozen
 kompilatorem do assembleru
(soubor .s) a vysledek prekladu
 prelozen assemblerem do object
modulu (soubor .o). K tomu
 jsou potom sestavovacim programem
prilinkovany knihovny
 (systemove a uzivatelske)
a vytvoren spustitelny program
 (impl. ulozen do souboru
a.out). Tyto faze jsou vsak
 pred uzivatelem do znacne
miry skryty.
  
 Prikaz pro praci s kompilatorem:
 cc [opts] files standardni
kompilator jazyka C
 -o file jmeno prelozeneho
programu
 -D ident definice identifikatoru
 -E zpracovani pouze makroprocesorem
 -p informace pro monitorovani
(prof)
 -g informace pro dbx
 -go informace pro adb
 
  
6.2 Vypisy a kontrola programu
pr [opts] [files] priprava
textu pro tisk
 cxref files generator krizovych
odkazu pro jazyk C
 lint files kontrola programu
v jazyce C
 zamerena na prenositelnost
konstrukci,
 podezrele akce (nedefinovane
hodnoty,
 nepouzite promenne a funkce,
nedostupny
 kod, nekonecne cykly) a typovou
kontrolu
 
 
6.3 Ladeni
size files zjisteni velikosti
prelozenych programu
 nm files vypis tabulky symbolu
programu
 prof command vypis vysledku
monitorovani programu
 (ze souboru mon.out vytvoreneho
spustenim
 programu prelozeneho s parametrem
-p)
 adb [-w] [objfile [corfile]]
 ladici prostredek na urovni
assembleru
 w umoznuje modifikaci souboru
 objfile soubor s proveditelnym
programem
 corfile soubor s obrazem
pameti po havarii
 prikazy:
 x,n:ta adresa,delka:typakce
akce
 adresa je urcena:
 cislo presun na adresu cislo
 ident presun na adresu ident
 typ akce je urcen:
 ? tisk obsahu ze souboru
objfile
 / tisk obsahu ze souboru
corfile
 = tisk adresy ciselne
 : prikaz pro sledovany beh
 $ jiny prikaz
 ! prikaz pro shell
 ; oddelovac prikazu
 format vypisu (typ akce ?
a /)
 i instrukce
 d slovo dekadicky
 b slabika oktalove
 c slabika znakove
 o slovo oktalove
 f dve slova v pohyblive carce
 s retezec znaku
 w str zmena obsahu (2 slabiky)
 W str zmena obsahu (4 slabiky)
 behove prikazy (typ akce
:)
 r args spusteni behu
 b (br) nastaveni ladiciho
zastaveni
 D odstraneni ladiciho zastaveni
 c pokracovani
 s krokovani po instrukcich
 ostatni prikazy (typ akce
$):
 q,
 ctrl-d ukonceni ladeni
 <f vstup ze souboru f
 >f vystup do souboru f
 b vypis ladicich zastaveni
 c vypis obsahu aktivnich
funkci
 C vypis aktivnich funkci
vcetne
 obsahu lokalnich prommennych
 r vypis obsahu registru
 e vypis externich prommenych
 m vypis zpravy o mapovani
pameti
 l str lokalizace adresy (2
slabiky)
 L str lokalizace adresy (4
slabiky)
 dbx [opts] [objfile [corfile]]
 symbolicky ladici prostredek
na urovni C
 objfile soubor s proveditelnym
programem
 corfile soubor s obrazem
pameti po havarii
 
  
6.4 Tvorba rozsahlych programu
Pro tvorbu a udrzbu rozsahlejsich
programovych celku, ktere
 sestavaji z nekolika zdrojovych
souboru slouzi prikaz "make".
 Ten provadi na zaklade souboru,
ktery obsahuje popis zavislosti
 mezi zdrojovymi soubory a
dalsi informace, zpracovani celku
 (napr. kompilaci, instalaci
ap.)
 Pouziti prikazu:
 make [opts] [macros] [target]
 spusteni prikazu make
 -f jmeno souboru pro make
(impl. Makefile)
 -i ignorovani navratovych
kodu
 -s tichy rezim
 -r vypnuti implicitni zavislosti
 -n interpretace makefile
bez shellu
 -p tisk implicitnich zavislosti
a maker
 -D ladici rezim make
 macros definice maker
 target oznaceni casti makefile
  
 Definice makefile:
 file: files
 akce pro file informace o
zavislosti souboru
 a moznosti vytvorit aktualni
soubor
 (obecne targets : sources
; commands)
 target: navesti (oznaceni
casti makefile)
 str=strings definice makra
($str rozvine makro)
 $* target (bez pripony)
 $@ uplna cesta target
 $CC identifikace kompilatoru
 lze pouzivat i prommene shellu
 \ pokracovaci znak
 implicitni pripony:
 .o relativni (object) modul
 .c program v jazyce C
 .f program v jazyce Fortran
77
 .r program v jazyce Ratfor
 .s program v assembleru
 .y zdrojovy text pro yacc
 .l zdrojovy text pro lex
 
  
7. Pouzita literatura
Brodsky, J. - Skocovsky, L.:
 Operacni system UNIX a jazyk
C. SNTL, Praha, 1989.
 Nesvera, S. - Richta, K.
- Zemanek, P.:
 Uvod do operacniho systemu
UNIX. CVUT, Praha, 1991.
 Brown, P.J.:
 Starting with UNIX. Addison-Wesley,
Reading, 1984.
 (Vvedenije v operacionnuju
sistemu UNIX, Mir, Moskva, 1987.)
 Load tento text unix.txt
    |