一句话:GoPV 静态分析器基于调用图与(后)支配者分析,检测 Go 程序中共享内存同步误用导致的阻塞并发缺陷。
Go 程序中共享内存同步原语(如互斥锁)的误用会导致阻塞并发缺陷,这类缺陷难以静态检测。GoPV 基于调用图与控制流图进行并发分析以及(后)支配者分析,从而发现潜在的此类缺陷。实验表明,GoPV 在八个基准程序上检测出了所有与共享内存同步相关的阻塞并发缺陷;此外,在 2.78 小时内从 21 个大型 Go 应用中发现了 17 个此类缺陷,验证了其有效性与效率。
GoPV is a static analyzer for detecting blocking concurrency bugs due to misuse of shared-memory synchronization primitive in Go. It performs concurrency analysis and (post-)dominator analysis based on call graph and control flow graphs to detect potential concurrency bugs in Go programs. The experimental results show that GoPV detects all blocking concurrency bugs related to shared-memory synchronization on eight benchmark programs. In addition, GoPV uncovers 17 such bugs in 21 large Go applications within 2.78 hours, demonstrating its effectiveness and efficiency.
DOI 原文 ·
@inproceedings{paperbot9597,
title = {GoPV: A Static Analyzer for Finding Blocking Concurrency Bugs Due to Misuse of Shared-Memory Synchronization in Go},
author = {Xiaofan Xu and Wei Song and Jeff Huang},
booktitle = {ISSTA},
year = {2025},
doi = {10.1145/3713081.3731734}
}