Since hardware is already mentioned here, the state of your memory also matters. A lot of bugs come from accidental overwriting of memory, or reading memory that hasn’t properly been initialized. These are often unpredictable. If uninitialised memory is read, then its contents will be whatever was last written to them by whatever program was using it. So a bug can be effected by software you were running before.
Memory stomps are different, but fall into the same category.
Another reason is that bugs sometimes only happen under a very specific sequence of events, that are a matter of timing.
Latest Answers