As illustrated in the following figure, break point are set consecutively from Line 12 to Line 19.
However, in debugging mode (F10), only Line 12, 14, 16, and 18 are capable of being hit. 13, 15, 17 are just by-pased.
I double checked - this behavior happens on VS2017 too. It happens not only with IUnknown, it happens with any IUnknown-derived interface.
The problem still exists. Actually, in the test project, set consecutive break points, and click “Step Over” ONLY. Don’t click “Run” , just click “Step Over” consecutively, and you will see that break points are not hit consecutively as I said.