Fellas, why is this happening, especially sometimes but not other times?
Here, I run the program three times, getting the exact same correct output. On the fourth, it outputs broken numbers. The function prnStats what’s being executed.
Fellas, why is this happening, especially sometimes but not other times?
Here, I run the program three times, getting the exact same correct output. On the fourth, it outputs broken numbers. The function prnStats what’s being executed.
I would trying running with address and undefined behaviour sanitizers enabled. The results can often be surprising.
Other than that look for entropy sources. Do you ever reference the current time, random numbers or anything else that could make a difference from one run to the next?
Only a file that doesn’t change between runs. I posted a copy of the full source code in a different post here in this thread. It’s been minimised down to 105 lines. Still can’t figure out where the bug is.
I’ll try your suggestion though, thank you!
I tried
-fsanitize=undefinedand-fsanitize=unreachablewith no luck. Are there other appropriate sanitizers I’m missing?The uninitialized variables would have required
-fsanitize=memorybut that one can be hard to use because IIUC it requires recompiling all dependencies.However in this case you likely would have got a compiler warning. I recommend compiling with
-Wallto start, you can then turn off a few warnings that are too noisy.Thanks for the help! I’ll definitely start using -Wall. I don’t know why I don’t do it by default…