PinDown 4.1, available now, introduces better precision during debug of regression test failures. PinDown 4.1 can point out, not only which commit or combination of commits that made a test fail, but also which file within that commit that is causing the test to fail. We call this file granularity. This is useful for large commits, e.g. when two branches are merged.

An Example
In the example bug report below a total of 124 files were committed at the same time by Praveen when he merged the development branch into the main trunk of the revision control system. This caused one test to fail (alu_ops_seed_14829533). With file granularity PinDown is able to narrow down which of these 124 files that caused the test to fail. And because it was able to narrow down the problem this much it was able to show the bad code changes directly in the bug report.

This is much more useful than stopping the debug at the commit and simply reporting that something within this commit of 124 files has caused an issue.

 

Fig 1. PinDown 4.1. Bug Report

 

New Command
Debug granularity is a trade-off between performance and precision. It can be controlled by a new command called set_debug_granularity.

Next Step - Line Granularity
We are not stopping at file granularity. Before the end of this year we will release a new version of PinDown supporting the ultimate goal for debugging: line granularity. This means PinDown will be able to narrow down the problem to a few lines within large files.