tsp-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: WARNING [Tsp-devel] GDisp+ New Release.


From: Stef Euskadi
Subject: Re: WARNING [Tsp-devel] GDisp+ New Release.
Date: Sun, 4 Dec 2005 16:10:00 +0100

OK, voir mes remarques plus bas.


2005/12/4, Erk <address@hidden>:
Je ne comprends pas encore assez le code pour traquer efficacement
les [éventuels] bugs mais valgrind (http://www.valgrind.org) semble
m'indiquer "2 zones" d'erreurs comportant des lectures dans des
zones non initialisées et des écritures dépassant des zones alloués
ci-après les stacks traces valgrind.
Je pense qu'il ne faut pas trop faire attention aux
erreurs liées au syscall initiaux dans gdk.
Ni d'ailleurs au 'write buffer non initialisé" (dans un premier temps).

Je suis d'accord. Idem sous SunWorkShop sous Solaris, où je trouve tout plein
d'erreurs d'initialisation de GDK et de X.
 

En revanche les:

- Invalid read of size X
- Invalid write of size Y


OK, je regarde le code.

Sont plus louches, à vérifier par ceux qui connaissent le code :)) .
Pour d'autres infos générales sur le débuggage mémoire:
http://www.buzztard.org/index.php/Debugging#GLibC

==14026== Thread 1:
==14026== Invalid read of size 4
==14026==    at 0x1BD09F2B: pthread_detach (in /lib/tls/libpthread- 0.10.so)
==14026==    by 0x805CB04: gdisp_createThread (gdisp_sampling.c:123)
==14026==    by 0x805D6AC: gdisp_startSamplingProcess (gdisp_sampling.c:1059)

Pour l'instant, je ne vois pas.
Tu peux regader le fichier << gdisp_sampling.c >>, première routine tout en haut avec
laquelle je crée des threads et je les détache si nécessaire :
<< gdisp_createThread() >>
En ligne 123, je détache le thread en passant son identité de type <<pthread_t>>, d'où
 le << *threadIdentity >>.
Problème d'alignement ? Je ne crois pas, je n'ai que des pointeurs.
 
 
==14053== Invalid read of size 1
==14053==    at 0x8060B7E: gdisp_dereferenceSymbolList (gdisp_utils.c:758)
==14053==    by 0x8064F81: gdisp_destroyPlotText (gdisp_plotText.c:215)
==14053==    by 0x805A8D2: gdisp_destroyGraphicPage (gdisp_pages.c:128)
==14053== Invalid write of size 1
==14053==    at 0x8060B86: gdisp_dereferenceSymbolList (gdisp_utils.c:758)
==14053==    by 0x8064F81: gdisp_destroyPlotText (gdisp_plotText.c:215)

Stoppez le train, j'ai trouvé.
Ce n'était pas un problème de débordement de tableau ou autre....
Mais un problème d'ordre de destruction des choses.
Je détruisais la table générale des symboles avant de détruire les plots graphiques qui ont une référence sur ces symboles. Perdu.
Donc maintenant, le bon quarté est :
    - destruction des plots graphiques
    - destruction des pages graphiques
    - destruction de la table générale des symboles
    - tsp-close

Amusez-vous bien.
 

> >
> > _______________________________________________
> > Tsp-devel mailing list
> > address@hidden
> > http://lists.nongnu.org/mailman/listinfo/tsp-devel
> >
>
>
>
> --
> --
> Euskadi.


--
Erk


_______________________________________________
Tsp-devel mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/tsp-devel



--
--
Euskadi.
reply via email to

[Prev in Thread] Current Thread [Next in Thread]