paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Compilation Consistency Modulo Debug Information

模调试信息的编译一致性
ASPLOS Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 22023匹配度 2/10 · 论文研究编译器在启用调试信息时保持机器码一致的属性,属于编译/调试工程问题;与用户核心关注的 PL与AI/LLM 交叉、静态分析、浮点程序分析、贝叶斯程序分析均无直接关系,仅在广义编程语言与编译器领域有边缘关联。引用 14 inbox
Theodore Luo Wang, Yongqiang Tian, Yiwen Dong, Zhenyang Xu, Chengnian Sun
crossref: 2026-09-12

AI 速览

一句话:定义并提出编译一致性模调试信息(CCMD)这一编译器属性:启用调试信息不应改变生成的机器码。

论文提出并阐述编译一致性模调试信息(CCMD)这一编译器应满足的属性:无论是否启用调试信息,编译器都应生成相同的机器码。CCMD 对开发者调试不含调试信息的生产二进制至关重要——为定位问题,开发者需要用相同编译选项重新构建一个带调试信息的二进制;若违反 CCMD,两次构建的机器码会不同,从而误导调试器、掩盖缺陷,甚至导致错误编译(GCC 曾在 Linux 内核上出现过此类问题)。摘要主要界定该性质并说明其重要性,未展开具体检测方法与评估细节。

问题
编译器生成机器码时是否应独立于调试信息开关;违反该性质会使生产二进制难以调试,甚至引发错误编译。
方法
摘要仅对 CCMD 属性进行定义与动机阐述,未描述具体的检测或实现技术。
评估
摘要未报告评估方式与实验结果,仅以 GCC 在 Linux 内核上的历史错误编译事件作为违反 CCMD 的现实例证。
原文摘要(Abstract)

Compilation Consistency Modulo Debug Information (CCMD) is an essential compiler property that a production compiler should support: the compiler should emit the same machine code regardless of enabling debug information. CCMD is vital to developers’ experiences with debugging a production binary containing no debug information. To debug such a binary, developers need build another binary with the same compiler flags and enable debug information. Without CCMD, the machine code in the latter binary will be different, which can confuse the debugger, hide the bug, or even cause a miscompilation (as GCC once did with the Linux Kernel).

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@inproceedings{paperbot9999,
  title = {Compilation Consistency Modulo Debug Information},
  author = {Theodore Luo Wang and Yongqiang Tian and Yiwen Dong and Zhenyang Xu and Chengnian Sun},
  booktitle = {ASPLOS},
  year = {2023},
  doi = {10.1145/3575693.3575740}
}