Today all (I think) code coverage tools use code instrumentation, potentially changing test results (as we run a modified version of the code we test). The impact of this is that most coverage tools suggest running tests twice - once without coverage tracking (the actual tests) and again with coverage, a practice that slows down builds.
Using the debugger interface for tracking code coverage means we are running unchanged code in tests, those not requiring a second run of tests just for coverage.
In addition, using the debugger interface, we can look at variable values and estimate coverage based on different states of variables in a statement.