Statistical debug information
The Statistical Debug Information section of the bug report estimates how strongly associated each area of the code is with the bug. Recall that Antithesis starts with a sample of instances of a bug and then generates a universe of many thousands of test cases by varying conditions a little bit. For every one of these new cases where the bug is hit, Antithesis records which lines of code in your software ran at some point. For every case where the bug is not hit, Antithesis records the same information. This is useful for generating hypotheses about where the bug is in your code: you can look at the lines of code that were most highly correlated with the bug occurring. Conversely, this is also useful for ruling out culprits: you might think that the bug is in one section of code, but Antithesis might find a test case where the bug is detected but that section of code is never called. The bug must therefore be somewhere else.
This section answers two related questions:
- Given that the bug is detected, what is the likelihood that a particular line of code is encountered?
- Given that a line of code is executed, what is the likelihood that the bug eventually surfaces?
The table in this section displays every line of code that ran in any of the test cases, and allows you to sort by these two distinct conditional probabilities.
The table also allows filtering by file, function, or class name in case you are only interested in seeing the statistical information for particular parts of your system.
It is normal that code associated with printing the error message or with the process of crashing will have a very high association with the bug. You may need to scroll down a little bit in the table to get past these trivial associations.