Engineers build large software systems for multiple architectures, operating systems, and configurations. A set of inconsistent or missing compiler flags generates code that catastrophically impacts the system's behavior. In the authors' industry experience, defects caused by an undesired combination of compiler flags are common in nontrivial software projects. We are unaware of any build and CI/CD systems that track how the compiler produces a specific binary in a structured manner. We postulate that a queryable database of how the compiler compiled and linked the software system will help to detect defects earlier and reduce the debugging time.
翻译:工程师们为多种架构、操作系统和配置构建大型软件系统。一组不一致或缺失的编译器标志会产生严重影响系统行为的代码。根据作者的行业经验,在非平凡软件项目中,由编译器标志非预期组合导致的缺陷十分常见。我们尚未发现任何构建和CI/CD系统能够以结构化方式跟踪编译器如何生成特定二进制文件。我们假设,建立一个可查询的数据库来记录编译器如何编译和链接软件系统,将有助于更早检测缺陷并减少调试时间。