Bonsoir on va reprendre dans le désordre
Envoyé par
rabah200830
Et le plus important pourquoi gcc n'a pas signalé un avertissement malgré le -Wall.
Un bloc vide n'est pas une erreur et si tu désires avoir des warnings sur les blocs vides il faut utiliser -Wempty-body qui n'est pas activé avec -Wall mais qui l'est si tu utilises en plus -Wextra. C'est une bonne pratique que d'activer les deux en phase de développement. Tu aurais eu un warning du genre :
warning: suggest braces around empty body in an if statement [-Wempty-body]
Envoyé par
rabah200830
Le problème que lorsque je lance le programme avec le débogueur tout marche bien et j'ai essayé sur Linux et ça marche avec et sans gdb. Sur un autre PC (sur Ubunutu ) ça marche qu'avec gdb.
Ubuntu c'est linux
Envoyé par
rabah200830
Quelqu'un peut m'expliquer tous ça. Si sans le débogueur il y a une instruction tab[-90] alors normalement elle y est avec le débogueur et pourquoi sur mon linux ça marche sans et avec le débogueur.
Pas forcément, le débogueur peut ajouter du code qui va initialiser des variables qui ne le seraient pas normalement, il peut ne pas y avoir le même alignement, enfin tout un tas de raisons diverses ... on peut parler d'heisenbugs dans ces cas.
Ton code néanmoins contient une erreur, il est par conséquent réellement bugué, et s'il fonctionne quand même c'est qu'il tombe en marche (coup de bol en tab[-90] il y a la bonne valeur par hasard ?) ... ou que les deux plateformes n'ont pas les mêmes bibliothèques (par exemple une machine de développement avec des bibliothèques de dev compilées en mode debug, alors qu'il y a les versions release/strippées sur l'autre machine).
Mais bon pour avoir une explication plus détaillée il faudrait le code entier.
En espérant avoir répondu à tes interrogations.
Partager