Je to A4 skenovaná jako greyscale přiu 1200 dpi. PNG soubor má asi 11 MB (není tam moc dat, je v něm README z optaru :) S debuggerem se bohužel moc nekamarádím, ale zkusím.
(gdb) run
Starting program: /home/sn/Desktop/optar/unoptar
Program exited with code 01.
(gdb) run 0-65-93-24-3-1-2-24 fedrrr
Starting program: /home/sn/Desktop/optar/unoptar 0-65-93-24-3-1-2-24 fedrrr
Program received signal SIGSEGV, Segmentation fault.
0x0000000000407fb2 in process_file ()
(gdb)
(gdb) bt
#0 0x0000000000407fb2 in process_file ()
#1 0x0000000000408474 in main ()
gdb `which unoptar` unoptar.core (to core se muze taky jmenovat core nebo core.123, kde 123 je cislo procesu). Pak se napise "bt full" a ono to vypise zasobnik.
Jako tresnicku na dorte lze prekompilovat s tim ze z CFLAGS v Makefile se odstrani -f... a -O... optiony a da se tam -O0 a -g a to pak je optimalizovane pro debuging.
Zkus taky do LDFLAGS v Makefile pridat -lefence a nainstalovat Electric Fence. Pak to treba bouchne driv a ukaze kde jsem co zkorumpoval.
Ted jsem se do kodu toho min/max koukal, nasel jsem tam jednu bugu, ale ta je naprosto neskodna, segault zpusobit nemuze. Tak to aspon prepisu optimalizovanejc aby ty cykly bezely rychlejc :)
Program received signal SIGSEGV, Segmentation fault.
0x0000000000407471 in max () at unoptar.c:1325
1325 ptr[0]=MAX(ptr[0],ptr[-width]);
(gdb) bt full
#0 0x0000000000407471 in max () at unoptar.c:1325
ptr = (unsigned char *) 0x2adaa5b7a7cf "�
xctr = 125760288
yctr = 0
#1 0x000000000040760b in process_minmax () at unoptar.c:1365
npix = 2
i = 1
#2 0x000000000040803c in process_file (filename=0x631010 "fedrrr_0001.png")
at unoptar.c:1581
No locals.
#3 0x0000000000408231 in process_files (base=0x7fff0d311db8 "fedrrr")
at unoptar.c:1636
longer = (unsigned char *) 0x631010 "fedrrr_0001.png"
alloclen = 22
file_number = 1
#4 0x000000000040832a in main (argc=3, argv=0x7fff0d310c68) at unoptar.c:1676
No locals.
Me to nepada - debugovalo se tezko :) Ale nakonec mi to doslo - netestovalo se jestli nezfailoval malloc, vysledek byl NULL pointer do ktereho se vesele zapisovalo...
Stahni si novou verzi a zkus ji. Ten obrazek stejne neprectes, protoze neni cely - pravy dolni a mozna levy horni roh jsou usekle. Je treba znova nascanovat.