CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Pourquoi les bugs existent ils ?

[-AFK-]
[-AFK-]
Niveau 8
23 mars 2006 à 23:31:47

Hello.

Je me pose une question depuis pas mal de temps : pourquoi les bugs existent ils ?

Je veux dire , le programme est clair et net , prenons par exemple les forums de jv.com . Tout marche impec , et pourtant , des fois , des bugs apparaissent comme des problemes d´horaires , de frames ..

Pourquoi ces bugs apparaissent ils ?

Merci.

dnob700
dnob700
Niveau 10
23 mars 2006 à 23:48:02

http://wall.sectionpc.info/images/erreur_bis.jpg
J´ai trouvé ça trop drole pour ne pas en faire une copie d´écran ... (juste au moment où je finisais de lire ton mail)

Bref, la question est très interessante, et on peut se demander plus largement pourquoi le fonctionnement de l´ordinateur n´est-il pas entirement prédéterminé (pourquoi par exemple les logiciel ne se lance pas exactement dans le même ordre à chaque démarage).

Une première piste de réponse est que tout n´est pas "clair et net", mais une partie du fonctionnement de l´ordinateur est mécanique, et donc les accès aux disques (entre autre l´ordre dans lequel ils sont effectués) sont dépendant de paramètres peu près aléatoire, qui peuvent donc modifier l´ordre dans lequel sont effectué certaine action (sasn compter des erreurs en lecture/écriture qui peuventtoujours se produire).

Dans le cas précis de JV, pour les problèmes d´horaires, je pense que c´est du uniquement à la manière dont le serveur recoit les message, qui peuvent mettre un certain temps à arriver et donc ça peut induire des inversionentre des post ou ce genre de chose (bref, j´en sais rien).

Pour le reste, je pense que c´est du aux navigateurs (les problèmes de frame), mais il faudra attendre un avis plus éclairé que le mien sur la question pour avoir une réponse.

JeanYvesYves
JeanYvesYves
Niveau 10
24 mars 2006 à 00:52:47

l´informatique, c´est une pyramide sur laquelle on pose des nouvelles couches de pierres, encore et encore, sur une couche existante.
On construit en fait une sorte de chateau.
Le soucis, c´est qu´une fois ce chateau construit, l´utilisateur : le mec qui va vivre dedans, va pouvoir faire ce qu´il veut, y compris aller grimper sur un endroit que le programmeur n´aura pas prévu : et boom !

En ce qui concerne un systeme, c´est encore pire : il y a des milliers d´habitants (si on peut dire) qui font un peu ce qu´ils veulent. Comment veux tu garantir le fait d´avoir pensé a tous les cas possibles et immaginables ?

Rien n´est sans bug, car on ne peut pas penser a tout et tout prévoir, tout simplement...

Silkut_Ev-L
Silkut_Ev-L
Niveau 4
24 mars 2006 à 11:36:22

L´informatique est un produit humain, peut être qu´en plus de lui donner la technique, l´homme lui donne son patrimoine, aucun humain n´est a l´abri d´une erreur puisque l´erreur est humaine dit-on, ce qui est produit par l´humain ne peut pas l´etre non plus ? A voir avec les propriétés de la nature et se transmissibilité selon Descartes.. :sarcastic:

[-AFK-]
[-AFK-]
Niveau 8
24 mars 2006 à 11:48:22

Merci pour toutes vos réponses.

"On construit en fait une sorte de chateau.
Le soucis, c´est qu´une fois ce chateau construit, l´utilisateur : le mec qui va vivre dedans, va pouvoir faire ce qu´il veut, y compris aller grimper sur un endroit que le programmeur n´aura pas prévu : et boom !"

Je trouve cette image très interessante , mais dans les cas comme les bugs d´horaires , personne n´a tenté de ´hacker´ le système ! tout est prévu correctement , et aucun problème ne se pose , et tout d´un coup le bug apparait . Peut être est-ce du au fait que les les utilisateurs aient posté leur message en même temps.. Donc ca serait une hypothèse que n´auraient pas prévu l´utilisateur..

Mais prenons par exemple le bug connu des frames , des fois , les rubriques de gauche ne s´affichent pas dans leur emplacement et dans une police assez grande . Seulement là , ça bloque : quelle hypothèse le developpeur n´a-t-il pas pu prévoir ?

La personne se connecte au site comme d´habitude , rien d´inhabituel . Et d´un seul coup , le bug apparait . Personne n´a touché à rien , et totu d´un coup ça apparait .

C´est cela que je trouve vraiment étrange . Cependant comme l´a dit Silkut , l´informatique est un produiit humain et l´erreur est humaine..

Néanmoins merci beaucoup pour vos réponses.

Freepard44
Freepard44
Niveau 8
24 mars 2006 à 15:34:08

Moi je penses tout simplement que en Informatique, quand on fait un truc, y´as pas de raison que ça marche. C´est comme l´effet démo, on fait un appli tout marche très bien on l´essaye 1000 fois et quand on veut le montrer, y´as rien qui marche..

godrik
godrik
Niveau 30
24 mars 2006 à 17:03:15

il y a aussi que meme si l´on fait des campagnes de tests completes. On en peut pas tester le logiciel sur un envirronement simulé correspondant a tous les clients.
C´est d´ailleurs pour ca que les rapports de bugs existent.
Au niveau des sites web, il existe de nombreux standard qui on pour vocation d´amener a des rendu graphiques unis. Malheureusement ces standard sont mal(pas) connu des webmaster et les navigateurs n´implementent pas bien ces normes...

JeanYvesYves
JeanYvesYves
Niveau 10
24 mars 2006 à 17:27:52

Tes hypotheses sont tres bonnes :
les messages qui arrivent simultanément dans le serveur, ça peut lui faire faire n´importe quoi si le programmeur n´a pas prévu ça.

Autre hypotheses, sur le net, la qualité des fils, ou alors par exemple un grand champ electrique ou magnétique vers un passage de signal peut changer des bits (des 1 en 0 ou inversement) par exemple !
C´est d´ailleurs tres fréquent.
Cependant, il existe des algorithmes de checksum (le plus connu s´appelle CRC) qui servent a vérifier que le message est intact par d´astucieuses opérations mathématiques basées sur les polynomes. Cependant, il y a une probabilité ( tres tres tres tres faible cependant, mais pas 0) que le CRC te dise que le message soit bon, alors que non :)

dnob700
dnob700
Niveau 10
24 mars 2006 à 18:32:44

Un exemple de fonction non prévue dans un message de nayru-chan à propos de l´actualité :

"Autre chose, si vous voulez supprimer un topic marqué, n´oubliez pas de le désépingler avant pour ne pas avoir de souci."

Typiquement, personne ne s´est fait chier à regarder ce qui va se passer dans ce cas là dans la base de données. C´est aussi une source de bogue : on espère que l´utilisateur va utiliser le logiciel "correctement" et on ne prévoit pas (exprès) certaine situation improbable (pourquoi un modérateur voudrait-il effacer un topic alors qu´il l´a marquer pour qu´il reste en première page ?) . Mais là dessus, il ne faut jamais compter, car l´utilisateur fait toujours n´importe quoi...

godrik
godrik
Niveau 30
24 mars 2006 à 18:46:05

On me dit souvent: "si il y a des boutons, alors considere que l´utilisateur cliquera aleatoirement dessus". :)

m-2
m-2
Niveau 10
24 mars 2006 à 23:01:59

aujourd´hui, dans mon cour de prog, un gars a demander une question au prof, a propos de l´utilité de certaines validations.. le prof lui as tout simplement dit "parce que l´utlisateur en générale est un con" alors voila..

elhuron
elhuron
Niveau 6
12 avril 2008 à 19:21:44

Up. Salut, j'utilise ce topic pour poser une question en rapport avec celui-ci sans pour autant en creer un nouveau.

Voici mon probleme : j'ai un programme perso qui est en cours d'execution, et il y a d'autres programmes en cours. Il est possible que les autres programmes modifie des variables de notre programme perso par dépassement de memoire par exemple ?
Ou alors, c'est géré par le systeme d'exploitation, et donc c'est presque impossible qu'un programme A modifie un programme B sans son consentement ?

Je me pose cette question car j'ai un programme que j'ai crée, qui, a un moment precis, se ferme, mais ceci est tres rare (1/200).

J'ai l'impression que la cause de cette fermeture n'est pas liée a un autre programme, mais une tierce personne m'a affirmer que le programme (perso) avait plus de chances de planter si beaucoup de programmes annexes etaient en cours d'execution en meme temps.

A ce moment du programme, je désalloue la memoire precedemment allouée, mais normalement, ca devrais pas causer de problèmes, car je verifie que ce que je desalloue n'est pas nul.

Merci de deposer vos commentaires.
Je pense que c'est moi qui gere mal une chose, mais c'est tellement rare, que je n'en ai aucunes idees...

JujuDredd
JujuDredd
Niveau 10
12 avril 2008 à 19:27:28

Si le fait que d'autres programmes tournent rend ton prog instable sans que les autres le soient, c'est probablement que tu gères mal la mémoire dans ton prog. T'es sûr de pas désallouer deux fois la même zone mémoire ? File-nous ton code s'il est pas trop gros, qu'on puisse voir.

Fvirtman
Fvirtman
Niveau 10
12 avril 2008 à 20:08:31

Il est hautement improbable que ce soit un autre programme qui te tue le tien. En effet, Linux et XP arrivent a bien isoler les programes. Chacun a son, ou ses segments, et si un programme essaie d'accéder a un segment qu'il ne possede pas, l'OS arrete tout de suite.

Le genre d'erreurs que tu peux avoir, c'est le débordement.
Par exemple, tu as un tableau int tab[50]; (donc de 0 a 49) et tu essaies d'écire dans tab[50] : donc tu débordes, mais pas de beaucoup.
Le plantage dépendra de la "chance", savoir si le tableau est rangé au bord d'un segment ou non.

Sois sur que ça vient de ton programme :)

caelacanthe
caelacanthe
Niveau 10
12 avril 2008 à 20:50:22

quand je jouais à morrowind, la probabilité qu'il plante était proportionnelle au niveau de fragmentation de mon disque dur :noel:

ca sent le thread qui va taper dans des ressources qu'un autre thread n'a pas su lui fournir à temps :hum:

elhuron
elhuron
Niveau 6
12 avril 2008 à 23:35:15

Mouarf, tant mieux que ca vienne de mon programme, il y a moyen de corriger. Merci pour vos posts :)

Je vais pas le poster, le fichier fait plus de 4000 lignes de codes, pas top bien géré, le prochain projet que je ferai, ca se passera plus comme ca.

Mais vous pouvez voir le code source si vous etes vraiment motivé : http://elhuron.c.la
Rubrique : C/C++ -> Nilbuck V2.0
fichier : menu.cpp / fonction : aventure

En fait, je suis en train de programmer des modifications, comme le multijoueur, mais les bugs etaient deja presents dans la version telechargeable.

Je desalloue la memoire vers la fin de la fonction comme ceci :
if(adversaire!=NULL)
..........delete adversaire;
if(imageBarreDeVieAdversaire!=NULL)
..........delete imageBarreDeVieAdversaire;
etc...

Le bug vient donc peut-etre du fait que avant de sortir de la fonction, j'ai deja desalloué la memoire d'un de ces pointeurs, d'où le plantage. Mais bon, normalement ca peut pas planter, avec mes conditions...

On m'avait aussi signaler un bug au niveau de la sauvegarde, elle etait apparemment erronée, mais c'est arrivé chez une seule personne je crois, ca vient peut etre de lui.

Pour les tableaux, j'ai connu enormement de bugs a cause des depassements de memoire, mais ces disfonctionnement arrivent plus regulierement par rapport aux bugs que j'obtient ici.

JujuDredd
JujuDredd
Niveau 10
12 avril 2008 à 23:54:49

"Mais bon, normalement ça peut pas planter, avec mes conditions..."

:d) Ça dépend, t'as pas oublié de faire un petit "p = NULL;" après chacun de tes "free(p);" ?
Enfin bon 4000 lignes... et il suffit que tu l'aie oublié une seule fois pour que ça risque de planter !

JujuDredd
JujuDredd
Niveau 10
12 avril 2008 à 23:59:22

Mais y'a un moyen de repérer ce genre d'erreur. Tu utilises des malloc et des free ? Ou peut-être des new et des dispose ?

elhuron
elhuron
Niveau 6
13 avril 2008 à 00:09:08

J'utilise new / delete, vu que je travaille en C++.
Apres un delete p, non je ne fait pas de p = NULL.
Ca le rend NULL automatiquement non apres un delete ?

Et tu penses que je peux recuperer comment ce genre d'erreur ?

JujuDredd
JujuDredd
Niveau 10
13 avril 2008 à 00:16:12

Ah oui, c'est delete et pas dispose :o))

Bon, déjà si tu développe sous Visual Macrosoft tu peux compiler en mode débug avant de lancer ton prog, il va systématiquement vérifier tous tes delete, ça ralenti le prog mais comme c'est pour débugguer ça devrait pas trop gêner, à moins que la baisse de performance n'empêche ton jeu de fonctionner.

Si tu développe avec autre chose c'est soluble aussi.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment