[linux] Help please:gdb:Ako debugovat chyby vzniknute pocas navratu z funkcie [resp vo vunkcii ???()]?
Marian Krivos
nezmar na atlas.sk
Neděle Prosinec 8 15:27:47 CET 2002
Myslim ze chyba je inde - prepisal si si zasobnik - hladaj miesta s a'la
memcpy() funkciami
spolu s premennymi na zasobniku a najdes to.
MK
peter Fodrek wrote:
>Vazeny kolegovia!
>
>Potreboval by poradit ako zistit, kde je chyba v kode.. Prejavuje sa
tak, ze
>volam funkciu, tato prebehne az na koniec no nenastane navrat do volajuce
>funkcie...
>pricom po gdb pokus core dostavam vystup...
>
>
>GNU gdb 4.17
>Copyright 1998 Free Software Foundation, Inc.
>GDB is free software, covered by the GNU General Public License, and
you are
>welcome to change it and/or distribute copies of it under certain
>conditions.
>Type "show copying" to see the conditions.
>There is absolutely no warranty for GDB. Type "show warranty" for
details.
>This GDB was configured as "i386-redhat-linux"...
>(no debugging symbols found)...
>Core was generated by `pokus'.
>Program terminated with signal 11, Segmentation fault.
>#0 0x5c616c73 in ?? ()
>(gdb) bt
>#0 0x5c616c73 in ?? ()
>Cannot access memory at address 0x2a0061.
>(gdb) quit
>
>
>CODE 1: Je volajuci kod a sposob zistenia, ze som sa nevratil do
>CODE 2: Je volany kod
>VYPIS je subor demostrujuci, ze posledny vypis z CODE 2: prebehol, ale
>program sa nevratil do nadradeneho kodu...(koniec vypisu), V subore
vidno,
>ze v programe je okrem vykonavameho kodu aj obsluha SIG_USR1
>(funkcia Prisli Data) a Event handler udalosti Expose instancie triedy
>coreWidgetClass, ktoru vyuzivam ako kresliacu plochu (kreslim pomocou
X-lib)
>X-WINDOWS aplikacie, (funkcia vykresliGokno...).
>
>S gdb nemam velke skusenosti.. Nevie mi niekto poradit ako debugovat tento
>kod...
>Napada ma jedine chyba pri swap-ovani jadra 2.0.35 (koli HW musim pouzivat
>2.0.3x), ale neviem ako zabranit swap-ovaniu kodu...
>
>
>Vrela vdaka za kazdu radu..
>
>
>S pozdravom
>
>Peto
>
>
>
>CODE 1:
>
>....
> fp=fopen("prepinam OK","at");
> fprintf(fp,"11a.1\n\n");
> fclose(fp);
> zobraz_plan("./002.rez");
> fp=fopen("prepinam OK","at");
> fprintf(fp,"11b.1\n\n");
> fclose(fp);
>....
>
>CODE 2:
>
>void zobraz_plan(char *meno_planu)
>{
> long flag=0;
> char prikaz[12];
> double oldX,oldY,X,Y,R,otocUhol,startUhol,koniecUhol;
> // Zisti velkost
> FILE *planik,*fp;
> int i;
> idemPrekladam=1;
> idemWW=1;
> ......
> idemWW=0;
> sleep(1);
> vykresliGokno(GRAFICKE_OKNO,NULL,NULL,0);
> fp=fopen("prepinam OK","at");
> fprintf(fp,"\n\n\n\nTretie zobrazenie!!!!!!!!\n");
> fclose(fp);
> idemPrekladam=0;
>
>
> fp=fopen("prepinam OK","at");
>
> fprintf(fp,"\n\n\n\nUplny vystup z prekladu !!!!\n");
> fclose(fp);
>
>
>}
>
>
>VYPIS:
>
>
> Prisli DATA !!!!
>-12.1 0
>
>11.1
>
>11a.1
>
>
>
>
>
>Uplny vstup do VykresliGokno !!!!
>
>
>
>
>SOM TU !!!!
>
>
>
>
> Graficke okno korektne a INICIALIZOVANA GRAFIKA!!!!
>
>
>
> idemWW=1
>
>
>
>
>Uplny vstup do VykresliGokno !!!!
>
>
>
>
>SOM TU !!!!
>
>
>
>
> Graficke okno korektne a INICIALIZOVANA GRAFIKA!!!!
>
>
>
> idemWW=1
>
>
>
>
>Uplny vstup do VykresliGokno !!!!
>
>
>
>
>SOM TU !!!!
>
>
>
>
> Graficke okno korektne a INICIALIZOVANA GRAFIKA!!!!
>
>
>
> idemWW=1
>
>
>
>
>Uplny vstup do VykresliGokno !!!!
>
>
>
>
>SOM TU !!!!
>
>
>
>
> Graficke okno korektne a INICIALIZOVANA GRAFIKA!!!!
>
>
>
> idemWW=1
>
>
>
>
>Uplny vstup do VykresliGokno !!!!
>
>
>
>
>SOM TU !!!!
>
>
>
>
> Graficke okno korektne a INICIALIZOVANA GRAFIKA!!!!
>
>
>
> idemWW=1
>
>
>
>
>Uplny vstup do VykresliGokno !!!!
>
>
>
>
>SOM TU !!!!
>
>
>
>
> Graficke okno korektne a INICIALIZOVANA GRAFIKA!!!!
>
>
>
> idemWW=1
>
>
>
>
>Uplny vstup do VykresliGokno !!!!
>
>
>
>
>SOM TU !!!!
>
>
>
>
> Graficke okno korektne a INICIALIZOVANA GRAFIKA!!!!
>
>
>
> idemWW=1
>
>
>
>
>Uplny vstup do VykresliGokno !!!!
>
>
>
>
>SOM TU !!!!
>
>
>
>
> Graficke okno korektne a INICIALIZOVANA GRAFIKA!!!!
>
>
>
> idemWW=1
>
>
>
>
>Preklad skonceny!!!!!!!!
> Prisli DATA !!!!
>
>
>
>
>Vypis skonceny!!!!!!!!
>
>
>
>
>Uplny vstup do VykresliGokno !!!!
>
>
>
>
>SOM TU !!!!
>
>
>
>
> Graficke okno korektne a INICIALIZOVANA GRAFIKA!!!!
>
>
>
> idemWW=1
>
>
>
>
>Prve zobrazenie!!!!!!!!
> Prisli DATA !!!!
>
>
>
>
>Uplny vstup do VykresliGokno !!!!
>
>
>
>
>SOM TU !!!!
>
>
>
>
> Graficke okno korektne a INICIALIZOVANA GRAFIKA!!!!
>
>
>
> idemWW=1
>
>
>
>
>Drhue zobrazenie!!!!!!!!
> Prisli DATA !!!!
>
>
>
>
>Uplny vstup do VykresliGokno !!!!
>
>
>
>
>SOM TU !!!!
>
>
>
>
> Graficke okno korektne a INICIALIZOVANA GRAFIKA!!!!
>
>
>
> idemWW=0!!!!
>
>
>
>
> uzsom=0!!!!
>
>
>
>
>Zacinam vykreslovat !!!!
>
>
>
>Skoncil som vykreslovat !!!!
>
>
>
>Tretie zobrazenie!!!!!!!!
>
>
>
>
>Uplny vystup z prekladu !!!!
>
>
>
>
>_______________________________________________
>http://lists.linux.sk/listinfo/linux
>http://search.lists.linux.sk
>
>
>
>
>
Další informace o konferenci linux