To explore the failure patterns of GNN-based BCSA, we manually examine the matching results of these models. In total, we identified a total of three failure patterns for GNN-based BCSA. We present an example for each pattern, and the function query is on the left-hand side, the Top-1 match is in the middle, and then the ground truth.
1. Significant differences in CFGs
GNN prioritizes graph structure rather than instruction level similarity (i.e. node features).
2. Functions with similar CFGs and functionality
We use gcc-O3 of nsv_read_seek as query, the top-1 match is a similar utility function for another file format.
3. Complex CFG structure
Complex CFG structure affects the expressiveness of the graph embedding, resulting in matching uncorrelated functions.