[ mrki @ 01.10.2002. 03:08 ] @
Debuger startujem pod emacs-om, a problem je sledeci:

dbg ime_programa


(dbg) breakpoint funkcija ...sve u redu, pravi prekid


(dbg) breakpoint linija_kod
no line 6 in file "init.c"

??? otkud ovo kada sam komandovao dbg ime_programa ???
Dali treba prilikom kompajliranja navesti argument koji omogucava kasnije debagiranje?
[ bm101 @ 01.10.2002. 05:10 ] @
Mozda si ukljucio otptimizacije koje izbace debug info koji je potreban debugeru za rad. Nisam siguran da li gcc po defaultu ostavlja debug info ili ne ali proveri u man-u.

A opet si mozda uradio sledece:

gdb breakpoint 6

a u kodu imas recimo:

6 :
7 : printf("..");

Na liniji 6 nemas nista za sta se gdb moze "uhvatiti". Zato postavi break na liniju u kojoj pocinje kod koji hoces da debagujes, a ne pre.
[ mrki @ 01.10.2002. 17:30 ] @
lepo pise... no line 6 in file "init.c"...moj program se ne zove tako, verovatno bi pisalo...no line 6 in file "ime_programa". Ja sam isao kroz kod i trazio da postavim tacke prekida gde bi mi najvise odgovarale, br. linije sam prepisivao sa 'satatus bar line' . Nisam te bas razume na ssta si mislio u vezi optimizacije?
[ Dragi Tata @ 01.10.2002. 17:36 ] @
A jesi li kompajlirao sa -g opcijom?
[ mrki @ 01.10.2002. 23:01 ] @
I to sam probao.
[ bm101 @ 04.10.2002. 11:05 ] @
A da li je program iz jednog ili vise fajlova ? To bi objasnilo ono init.c.
[ mrki @ 07.10.2002. 03:19 ] @
Jednog.

Prevodilac prijavljuje neku gresku prilikom prevodjenja za g opcijom
gcc -o -g ime_fajla ime_fajla.c
Bez g opcije je sve u redu. Bez greske!
...
Poslacu. Samo da se linuxujem
[ mrki @ 10.10.2002. 03:14 ] @
Evo:

gcc -o -g program program.c

program: In function `_init':
program(.init+0x0): multiple definition of `_init'
/usr/lib/crti.o(.init+0x0): first defined here
program(.text+0x0): multiple definition of `_start'
/usr/lib/crt1.o(.text+0x0): first defined here
program: In function `_fini':
program(.fini+0x0): multiple definition of `_fini'
/usr/lib/crti.o(.fini+0x0): first defined here
program(.got+0x0): multiple definition of `_GLOBAL_OFFSET_TABLE_'
/usr/lib/crti.o(.got.plt+0x0): first defined here
program(.rodata+0x4): multiple definition of `_IO_stdin_used'
/usr/lib/crt1.o(.rodata+0x4): first defined here
program(.data+0x0): multiple definition of `__data_start'
/usr/lib/crt1.o(.data+0x0): first defined here
/tmp/cc06DpbC.o: In function `main':
/tmp/cc06DpbC.o(.text+0x0): multiple definition of `main'
program(.text+0xb0): first defined here
/tmp/cc06DpbC.o: In function `resolve':
/tmp/cc06DpbC.o(.text+0x2b8): multiple definition of `resolve'
program(.text+0x368): first defined here
/usr/lib/crti.o(.dynamic+0x0): multiple definition of `_DYNAMIC'
program(.dynamic+0x0): first defined here
collect2: ld returned 1 exit status

Compilation exited abnormally with code 1 at Thu Oct 10 04:11:23

a bez g opcije sve u redu:

gcc -o program klijentHR.c

Compilation finished at Thu Oct 10 04:13:47

[ Dejan Lozanovic @ 10.10.2002. 09:47 ] @
a jel bi mogao da probas umesto -g da napises -ggdb cisto onako, mislim da bi tako trebalo da radi.
[ random @ 10.10.2002. 16:50 ] @
Citat:
mrki:
Prevodilac prijavljuje neku gresku prilikom prevodjenja za g opcijom
gcc -o -g ime_fajla ime_fajla.c
Bez g opcije je sve u redu. Bez greske!


Pa naravno, kad si ubacio "-g" umesto imena output fajla, pa gcc pokušava da ti kompajlira već kompajlirani binarni fajl "ime_fajla" i da smesti output u fajl "-g". Stavi

gcc -g -o ime_fajla ime_fajla.c

i biće u redu.
[ mrki @ 12.10.2002. 02:30 ] @
Cisto neiskustvo :) hvala. To je to:
gcc -g -o ime_fajla ime_fajla.c
umesto
gcc -o -g me_fajla ime_fajla.c
auu, oko cega sam se danima patio ;( kakva glupost