OVH Cloud OVH Cloud

debug de fuites memoire

64 réponses
Avatar
3dsman
salut!
je suis a la recherche d'un outil efficace et pas trop compliquer pour
detecter les fuites memoires dans mes softs.
quelqu'un en aurais il un bien a me conseiller?
merci

4 réponses

3 4 5 6 7
Avatar
Jean-Marc Desperrier
Arnaud Meurgues wrote:
Si par « tester tout ce que vous avez écrit », tu entends « tests
unitaires », je te répondrais que cela ne suffit pas pour certains type
de classes comme des classes gérant des connexions réseau. Pour
celles-là, les tests unitaires me paraissent bien difficile à mettre en
oeuvre, par exemple, notamment parce qu'on ne peut tester « unitairement
» une classe qui ne peut fonctionner qu'avec d'autres classes.


Pourtant ce genre de cas se gère mieux au niveau test unitaire très bas
méthode par méthode, en "stubbant" tout pour être capable de lui envoyer
n'importe quelle entrée qui n'arrive jamais en pratique.

Avatar
kanze
Jean-Marc Desperrier wrote:
Matthieu Moy wrote:
Ça veut dire quoi, « tester ce qu'on a écrit » ?


Le meilleur test que j'ais jamais fait était du test unitaire
en environnement embarqué où tester signifiait au cours de la
panoplie de test unitaire passer par 100% du code écrit. Le
test pouvant être exécuté sur un simulateur qui était capable
de sortir automatiquement un rapport pour savoir si chaque
instruction assembleur avait été touchée du code ou non. Cela
signifiait en particulier rentrer dans chaque cas
conditionnel, et en réalisant succesivement toutes les
conditions conduisant à rentrer dedans.


Ce n'est pas suffisant. Si tu as quelque chose du genre :

if ( c1 ) {
a ;
} else {
b ;
}
if ( c2 ) {
c ;
} else {
d ;
}

il faut bien quatre cas de test (au moins) ; pour une telle
définition de couverture, deux cas suffirait.

Note que la présense des exceptions rend les tests beaucoup plus
complexe.

Il s'agissait de vérifier le contrat mais à un niveau très
élémentaire, bien en dessous du composant. A l'arrivée le
résultat en terme de fiabilité était très convaincant, on
économisait beaucoup sur les tests de plus haut niveau.


Tout à fait. À un moment donné, on teste une seule chose, en
supposant que ce qui est en dessous marche.

Dans les tests unitaires, évidemment. Il faut aussi des tests
d'integration, pour vérifier qu'on ne s'est pas trompé dans la
spécification des contrats des composants. Mais comme tu dis,
ils sont beaucoup plus legers si chacun des composants a été
bien tester.

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


Avatar
kanze
Arnaud Meurgues wrote:
wrote:

À part qu'élaborer est un anglicisme (ça c'est à propos d'une
discussion précedente),
Tu en est sûr ?



Oui et non.
Utilisé ainsi, c'est un anglicisme. Le mot « élaborer »
existe. Mais on ne l'utilise pas dans ce contexte.

« Produire (quelque chose) au terme d'un long labeur », avec


C'est ça. Mais « can you elaborate ? » singifie (sauf erreur)
en anglais une demande de précision et se traduit volontier
par « Peux-tu développer ? » ou « Peux-tu préciser ta
pensée ? ».

Tu me dirais que je suis mal placé pour dire, mais «
élaborer tes pensées » me semble tout à fait français.


Ben... Moi, je trouve pas. On élabore un projet ou un plan,
mais pas des pensées. Il y a vraiment l'idée de production,
comme le dit ton dictionnaire.


C'est bien possible que je me suis laisser influencer par
l'utilisation anglaise.

La différence est bien subtile. Dans les deux cas, il y a l'idée
de ce qui en sort est plus complet ou plus achevé d'où on est
parti. Mais effectivement, dans l'expression anglaise (telle
qu'elle sert ici), ce qu'on doit développer, c'est l'expression
des idées, et non les idées même.

De même, mes pensées sur un sujet donné sont quelque chose qui
se produit, dans certains cas. Si tu me démandes mes pensées sur
un sujet que je ne connais pas, je dois les elaborer avant de te
répondre, non ? Ou est-ce que je suis complètement à côté ?
(C'est possible. Le mot fait partie d'un vocabulaire docte qui
est largement partagé entre le français et l'anglais.)

Et je ne dirais jamais en anglais « elaborate your thoughts
».


Mais confirmes-tu que « Can you elaborate ? » se dit pour
demander plus de détails ou de précision ?


En effet. En général, la question suppose qu'on a déjà
« compléter ses pensées » ; on démande plutôt d'«< en compl éter
l'expression ».

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34



Avatar
Arnaud Meurgues
wrote:

parti. Mais effectivement, dans l'expression anglaise (telle
qu'elle sert ici), ce qu'on doit développer, c'est l'expression
des idées, et non les idées même.


Voilà.

De même, mes pensées sur un sujet donné sont quelque chose qui
se produit, dans certains cas. Si tu me démandes mes pensées sur
un sujet que je ne connais pas, je dois les elaborer avant de te
répondre, non ? Ou est-ce que je suis complètement à côté ?


Non. On peut dire ça, sans doute. Moi, ça me fait bizarre d'utiliser «
élaborer » pour parler des pensées. Mais on peut élaborer une idée, plus
que les pensées, car ce qui est produit, c'est une idée, plutôt que des
pensées. Donc, oui, dans ce cas là (élaborer une idée), je suppose qu'on
peut l'utiliser.

Par ailleurs, je ne suis pas académicien. Moi, je voulais juste dire que
« Peux-tu élaborer » était issu de l'anglais « Can you elaborate » et
qu'il ne s'employait pas en français de France. C'est peut-être sujet à
changement (on a fini par implémenter des programmes).

En effet. En général, la question suppose qu'on a déjà
« compléter ses pensées » ; on démande plutôt d'«< en compléter
l'expression ».


C'est ce qu'il me semblait.

Arnaud

3 4 5 6 7