Heisenbug

data-processing Bug based on the principle of uncertainty of Heisenberg defined in Quantum physics: to observe a structure modifies its state.

In practice, one finds one of the three following cases:

  • the program turns under the Débogueur, but not on the Ligne of order

  • the program goes when one adds printf () for déboguer, but not when they are removed
  • the program functions when techniques of control of bug are applied, but not when one withdraws these controls for a version of production.

Often, this kind of bug comes from a variable which is used before being assigned. It is thus in an indefinite state when the program is launched.

Another source of Heisenbug comes from a policy " laxiste" of management of the memory, favourable with the escapes of possible memories and the crushing of data. It is advisable to be very strict on the way in which the memory dynamqiue is handled.

Example

In Visual C++, there exists a mode debug (for the development of a program) and a mode release (the version of production generally). The mode debug with the " bonne" idea to reserve more memory that one really should not any. This behavior implies that the program in mode debug will seldom plant, whereas in mode release , the program plants systematically because of a overflow of pile. It is about Heisenbug because when one wants to analyze it, it is necessary to pass in mode debug , which makes it disappear…

See too

Random links:Échalot | Live 2005 with the Sport hall | Zonguldakspor K | Constitutional law in France | Government Charles Dupuy (2) | Chevak,_Alaska