DEV Community

Discussion on: The Debugging Golden Rule

Collapse
 
le_top profile image
M. • Edited

I agree but in my case it is well under 99%.

As developers tend to blame the other developer, I am often in the latter position. I'ld agree that it is not me initiating the bug report, but the argument is often that my code upgrade or my implementation is not correct.

So I am prepared to debug the code that I did not write and I only file a report back once Ihave the proof where the bug is located. That is in my experience the fastes way to go forward.

Debugging code that you do not necessarily have access to is another ball game, but it is an interesting skill set.

Amongst the bugs I have discovered there are:

  • a Pentium bug where a left shift of a register of 32 bits did not work: the register was left untouched, while shifting it 33 bits did return 0 and a 31 bit shift was also correct. I never reported it. My C program worked in one compiler but not in the other : the one where it worked used a 16 bit register model.
  • a GCC bug where the "volatile" keyword was(/is) not entirely respected. The “volatile int” that I did some operations on was optimized out. I noticed this during checking compiler performances, so as I am aware of it I know what to avoid. It was a long time ago and I never reported it.
  • a bug in the Microsoft .NET mailing functions with regards to security. I found the source code for that bit, confirmed the bug and made a report to Microsoft. After a while Microsoft indicated that they started looking into it, and another while later they indicated that they confirmed the bug but that they were not going to fix it. In the mean time I had worked around it as cleanly as possible based on the knowledge of the inner workings of .NET. I think that was in 2014.

So bugs in renowned systems do exist. While you have to consider your own Work first as the source of bugs, you do need to pay attention to any deviation from the expected behaviour and if it is a third party, build a "simple" test case that it is the third party. That test case can then serve for your bug report if needed.