[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