Heisenbug

Heisenbug

Heisenbug

Un Heisenbug est un bogue informatique difficile à localiser parce qu'il ne se manifeste pas lorsque des outils de détection sont utilisés pour le rechercher. Ce nom est basé sur le principe d'incertitude d'Heisenberg, défini en physique quantique, qui constate qu'observer une structure modifie son état.

En pratique, on retrouve l'un des trois cas suivants :

  • le programme tourne sous le débogueur, mais pas sur la ligne de commande
  • le programme marche quand on rajoute des printf() pour déboguer, mais pas quand on les enlève
  • le programme fonctionne quand des techniques de contrôle de bug sont appliquées, mais pas quand on retire ces contrôles pour une version de production.

Souvent, ce genre de bogue provient d'une variable qui est utilisée avant d'être assignée. Elle est donc dans un état indéfini lorsque le programme est lancé.

Une autre source d'Heisenbug provient d'une politique "laxiste" de gestion de la mémoire, propice aux fuites de mémoires et à l'écrasement éventuel de données. Il convient d'être très strict sur la manière dont la mémoire dynamique est manipulée.

Exemple

En Visual C++, il existe un mode debug (pour la mise au point d'un programme) et un mode release (la version de production généralement). Le mode debug a la "bonne" idée de réserver plus de mémoire qu'il n'en faut réellement. Ce comportement implique que le programme en mode debug plantera rarement, alors qu'en mode release, le programme plantera systématiquement à cause d'un débordement de pile. Il s'agit d'un Heisenbug car lorsqu'on veut l'analyser, il faut passer en mode debug, ce qui le fait disparaître...

Voir aussi

Ce document provient de « Heisenbug ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Heisenbug de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать реферат

Regardez d'autres dictionnaires:

  • Heisenbug — Ein Programmfehler oder Softwarefehler, häufig auch im Deutschen mit dem englischen Wort Bug (genau genommen Wanze, im erweiterten Sinne auch für jedes andere Insekt; Aussprache [bʌg]) bezeichnet, ist ein Ausdruck aus dem EDV Bereich. Ein Fehler… …   Deutsch Wikipedia

  • heisenbug — n. Programmer s term for a software bug that alters its behavior when you try to isolate it or examine it. Example Citation: No matter where I set my breakpoints, this dumb heisenbug doesn t show up. Notes: This word is a play on Heisenberg s… …   New words

  • Heisenbug — …   Википедия

  • heisenbug — noun A software bug which fails to manifest itself during debugging …   Wiktionary

  • Heisenbug — (benannt nach dem Quantenphysiker Heisenberg, Entdecker der Unschärferelation) nicht wiederholbarer Fehler, Gegenteil: Bohr Bug http://www.ccil.org/jargon/jargon.html …   Acronyms

  • Heisenbug — ● ►en n. m. ►DEBUG D après le principe d incertitude d Heisenberg, en physique quantique. bug qui disparaît ou se modifie sensiblement quand on essaye de le localiser. Ce n est pas si idiot que cela comme expression, puisque les débogueurs ou les …   Dictionnaire d'informatique francophone

  • Heisenbug — (benannt nach dem Quantenphysiker Heisenberg, Entdecker der Unschärferelation) nicht wiederholbarer Fehler, Gegenteil: Bohr Bug (http://www.ccil.org/jargon/jargon.html) …   Acronyms von A bis Z

  • Unusual software bug — Unusual software bugs are a class of software bugs that are considered exceptionally difficult to understand and repair. There are several kinds, mostly named after scientists who discovered counterintuitive things. Contents 1 Bohrbug 2 Mandelbug …   Wikipedia

  • Bug logiciel inhabituel — En programmation informatique, un bug logiciel inhabituel est un bug considéré comme très difficile à détecter et à réparer. Il en existe plusieurs types souvent désigné d après le nom de scientifiques qui ont découvert des principes non… …   Wikipédia en Français

  • Bohrbug — Ein Programmfehler oder Softwarefehler, häufig auch im Deutschen mit dem englischen Wort Bug (genau genommen Wanze, im erweiterten Sinne auch für jedes andere Insekt; Aussprache [bʌg]) bezeichnet, ist ein Ausdruck aus dem EDV Bereich. Ein Fehler… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”