Bonjour à tous,
Je ne sais pas si c'est le bon forum pour poser cette question mais voici :
Nous avons pris livraison d'une nouvelle librairie que notre revendeur nous présente comme le must en la matière (pas gratuite du tout, je précise en passant).
PB: Premier test = plantage.
Alors, histoire de m'assurer que je ne mets pas mes erreurs sur le dos des autres (j'ai horreur de passer pour un con), j'isole le code incriminé.
J'obtiens ces ridicules petites lignes de code :
On ne peut pas faire plus court...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 #include <PvConfigurationReader.h> int main(void) { PvConfigurationReader reader; reader.GetDeviceCount(); // <- produit un ACCESS VIOLATION return 0; }
Fan de "La petite maison dans la prairie", je me dis que j'ai là l'occasion de faire une bonne action : j'envoie un rapport au support technique du revendeur pour qu'il remonte le problème aux concepteurs.
Réponse du directeur technique himself (je résume) :
Auquel, je réponds :C'est normal que ça plante. Il faut appeler la méthode Load() avant et vérifier que la lecture du fichier s'est bien passée.
Réponse :Je veux bien. J'ai fait les choses dans le désordre mais si ça plante c'est qu'il y a un bug.
Je vous passe les heures au téléphone pour essayer de comprendre pourquoi ce monsieur ne veut pas remonter le problème aux concepteurs.Non, non! Ce n'est pas un bug. Il suffit de faire les choses dans le bon ordre et ça ne plantera pas.
La dernière qu'il m'a sorti, c'est queLà, il m'a scotchéce n'est pas un problème de librairie mais un problème de C++.. Dès que j'ai l'explication de ce que cela veut dire, je vous la donne...
Bref, on tourne en rond.
Mon avis : C'est inadmissible qu'un appel à une fonction (ou méthode) plante. C'est de la responsabilité du développeur de la fonction (ou de la classe) de s'assurer au minimum qu'il dispose des resources nécessaires à la bonne execution de la requête et sinon de renvoyer une erreur.
Certains diront qu'on ne peut pas tout vérifier mais avant d'accéder au contenu d'un buffer, on peut au moins s'assurer qu'il est initialisé proprement. Non?
Alors histoire d'avoir les idées claires, je demande l'avis des professionnels qui trainent sur le forum.
Bien que ce message soit écrit sur un ton un peu léger, ce sujet est extrémement sérieux. Je demande donc aux non professionnels ou ceux qui n'ont pas d'avis de ne pas intervenir.
Je demanderai aussi que les intervenants argumentent leur propos.
Cela me permettra peut-être de savoir si mes exigences en termes de robustesses et de responsabilités sont légitimes.
Et au final, peut-être arriverons-nous à trouver, ensemble, une définition universelle du bug (mais là, je rêve sûrement)
Partager