next up previous contents
Next: Messages du compilateur Up: DEBUGoude la Mise Au Previous: Contents

Introduction

MURPHY'S LAWS (selection)

1. In any field of scientific endeavor, anything that can go wrong, will.

2. If the possibility exists of several things going wrong, the one that will go wrong is the one that will do the most damage.

3. If nothing can go wrong, something will.

4. Nothing is as easy as it looks.

5. Everything takes longer than you think.

Après avoir étudié le problème posé, vous avez analysé plusieurs solutions et retenu celle qui vous semblait la meilleure. Puis vous avez écrit votre programme en C++, et vous êtes sur le point de lancer le compilateur.

Vous pensez être au bout de vos peines. Il se peut que vous ayez raison, si vous vous trouvez dans un des cas suivants :

Mais dans la plupart des cas, la première compilation d'un programme donnera lieu à de désagréables déconvenues.

Les premières viendront du compilateur lui-même : il vous submergera de messages abscons, en anglais de surcroît, et refusera éventuellement de produire un code exécutable à partir de votre programme. Il ne faudra pas vous en offusquer. Ces messages vous seront, pour peu que vous sachiez en profiter, d'une aide précieuse. La section 2 de ce manuel vous aidera à les interpréter.

Les secondes pourront survenir à l'occasion des premières exécutions de votre programme. Il se peut alors qu'il fonctionne mais ne donne pas les résultats attendus, ou qu'il les donne dans certains cas et pas dans d'autres, ou qu'il s'arrête sur l'affichage d'un message d'erreur (il s'agit alors d'un message provenant du système d'exploitation, et non plus du compilateur), ou qu'il s'arrête en bloquant la machine, ou encore qu'il ne s'arrête pas du tout.

Le simple fait que le compilateur produise un exécutable montre que votre programme est syntaxiquement correct, c'est-à-dire qu'il respecte la grammaire du langage C++. L'erreur se manifestant lors de l'exécution du programme peut donc être qualifiée de sémantique, c'est-à-dire portant sur le sens que vous attribuez à la suite de symboles constituant votre programme. L'ordinateur exécute ce que vous avez écrit, mais ce que vous avez écrit ne correspond pas toujours à ce que vous vouliez qu'il fasse. La section 3 traite des erreurs sémantiques non détectées à la compilation, et de leurs causes les plus courantes.

Nous en viendrons ensuite aux remèdes. Certaines techniques et outils faciles à utiliser pourront vous aider à résoudre vos problèmes. Ils seront abordés dans la section 4.

Enfin, nous nous pencherons dans la section 5 sur la question de la prévention. Comment en effet ne pas faire sien l'adage qui prétend que la meilleure façon de traiter les erreurs, c'est de ne pas en faire ? Il existe une foule de techniques, allant de "recettes" concrètes aux méthodologies globales, qui ont pour but de produire plus facilement des programmes exempts d'erreurs.


next up previous contents
Next: Messages du compilateur Up: DEBUGoude la Mise Au Previous: Contents

Michel COUPRIE
Thu Sep 12 13:39:33 METDST 1996