Uvod,gcc,gdb Flashcards

1
Q

Sta su sistemski softveri?

A

Program koji ktrolise, upravlja i povezuje pojedinacne hardverske delove racunaskog sistema

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Vrste sistemskih softvera?

A

1) operativni sistem
2) virtuelna masina
3) kompajler
4) punioc
5) asembler
6) linker
7)drajver

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Sta su punioci?

A

Prevose fajl u memoriju i pripremaju ga za rad

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Sta su drajveri?

A

Programi koji omogucavaju drugim programima da rade sa hardverskim jedinicama

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Sta su prevodioci (kompajleri)?

A

Prevode program sa korisnickog jezika na objektini jezik slican masinskom

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Sta su asmebleri i povezivaci?

A

Asembleri su programi koji prevode asmmblerski kod na masinski hod; jedna asemblerska naredba odgovara jednoj masinskoj

Povezivac povezuje sve objektne fajlove u jedan izvrsni

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Sta su virtuelne masine?

A

Stvaraju privid da na jednoj fizickoj masini postoji vise logicnih masina

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Kako izgleda proces prevodjenja, koje faze postoje?

A

1) makroprocesianje
2) kompajliranje
3) asembliranje
4) linkovanje/ povezivanje

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Sta radi komanda gcc -save-temps -hello.c -o hello?

A

Prevodi c fajl u izvrsni fajl i cuva sve privremene fajlove nastale kroz faze prevodjenja

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Faza makroprocesiranja?

A

Ubacuje u osnovni .c fajl neke izmene, koristeci direktive koje stoje uz #:

1) include -> ubacuje biblioteku u fajl
2) define -> menja makroime sa njegovom vrednoscu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Faza kompajliranja?

A

Korstimo cc1 prevodilac i hello.i fajl prevodimo u asemblerski fajl hello.s

1) gcc -print-prog-name=cc1
/putanja do kompajlera

2) /putanja do cc1 hello.i -s hello.s

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Faza asembliranja?

A

Prevodi asemblerski fajl u objekti fajl

as -hello.s -o hello.o

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Sta radi komanda objdump hello.o? I koje dodatke moze da ima?

A
  • Daje podatke o datom objetnom fajlu

-M znaci da pise u intel sintaki
-d znaci da radi desembliranje, objetni fajl je napisao u asmeblerski
-f ispisuje hedere koje imamo
-t daje nam tabelu simbola

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Faza povezivanja?

A

Povezuje sve objekte fajlove u jedan izvrsni fajl,
u ovoj fazi imamo neke objektne fajlove koje povezujemo kako bi program koji stvaramo mogao da se pokrene i izvrsi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Komanda gcc -v hello.c -o hello.o?

A

Ispisuje koje alate koristimo prilikom prevodjenja

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Staticko povezivanje?

A

Vrsi povezivanje biblioteka odmah u fajl i taj fajl je veci od fajla nastalog dinamickim povezivanjem

gcc -static hello.c -o shello

17
Q

Dinamicko povezivanje?

A

U trenutku pekretanja fajl vrsi se povezivanje sa bibliotekama

gcc hello.c -o hello

18
Q

Komanda gcc -g hello.o hello?

A

Prevodimo program i uvozimo informacije koje su potrebne da bismo mogli da ga debagujemo

19
Q

Izvrsavanja pod kontrolom dibagera koristeci 2 prozora?

A

Otvorimo 2 terminala- u prvom imamo ulaz/izlaz programa, a u drugom zadajemo komande dibageru

-prvi: tty -dobijamo id ovog prozora
/dev/pts/1

-drugi: gdb -tty/dev/pts1 -pokrecemo dibager

-

20
Q

Aktivacija tui rezima rada dibagera?

A

ctr-x 1, dodatno mozemo da aktiviramo single key opciju sa ctr-x 9

21
Q

Komande u dibageru?

A

1) s-step -> idemo 1 liniju unapred, sa ulaskom u funkciju
2)n-next -> idemo 1 liniju unapred, bez ulaska u funkciju
3)v- info local -> prikaz vrednosti promenljivih
4)f-finish ->izvrsi do izlaska iz tekuce funkcije
5)c-continue ->izvrsavanje do sledeceg breakpointa
6)q -> izlaz iz single key rezima rada

22
Q

Gdb promena vrednos promenljive, citanje vrednosti promeljive i pronalazak gde smo napustili debagovanje?

A

1) set var i =4
2) print i
3)where

23
Q

Dodaci u gcc -nostdlib i -no-pie?

A

gcc -nostdlib -no-pie -g hello.s -hello

-ne radimo linkovanje sa bibliotekama i ne pravimo pozicione nezavisni kod

24
Q

Debagovanje asemblerskog koda?

A

-U tui rezimu otovorimo dadatni prozor koji ispisuje vrednosti procesorskih registara ->komanda: layout regs

winheight regs 20 -> hocemo da nam se ispise prozor od 20 registara

set $rax=5 ->promena vrednosti registra