我是一名正在为多核处理器优化 GCC 的学生。我尝试浏览源代码,但很难通过它,因为我需要在后端添加一些代码。谁能建议一些好的资源来解释不同阶段的代码流。也建议一些调试GCC的开发环境,主要是单步调试代码。在windows上可以吗?
2 回答
作为起点,请参阅GCC 网站上的链接和精选读物。我认为您特别感兴趣的是:
- GNU C 编译器内部
- 使用 GCC 编译函数式编程语言——Andreas Bauer 的尾调用
- Hans-Peter Nilsson为 Dunces 移植 GCC
如果你想在 Windows 上开发,你可能需要从MinGW(Minimalist GNU for Windows)编译器套件源(它包括 GNU GDB 调试器)开始,它是 GCC 到 Windows 的一个端口。
对于一个舒适的开发环境,我帮不上什么忙,因为我不是用 C++ 开发的。但我想你需要一个好的 C/C++ IDE:看看这个比较,有很多适用于 Windows 的免费/开源 IDE。
更新:我认为您也可能对ICI感兴趣:
交互式编译界面 (或简称“ICI”)是一个插件系统,具有独立于高级编译器和依赖于低级编译器的 API,可将当前编译器转换为协作的开放式模块化交互式工具集。ICI 框架充当编译器和用户可定义插件之间的“中间件”接口。它开放并重用生产质量的编译器基础设施,以支持程序分析和检测、细粒度程序优化、新开发和研究想法的简单原型设计,同时避免从头开始构建新的编译工具。例如,它在 MILEPOST GCC 中用于自动化编译器和架构设计以及基于统计分析和机器学习的程序优化。
.. 与Collective TUNING旗下的其他项目一样。
注意:正如 BlueRaja 在评论中所写的那样,写“编译器是最复杂的程序之一”是夸大其词:有非常简单的编译器和非常复杂的编译器。但是在编译器理论中(一旦你研究过它)没有什么深奥的。GCC 是一个复杂的程序,可以理解为任何BIG、文档不完整的程序1。所以 rizwanhudda 不要气馁:开始研究可用的文档,然后询问 GCC 开发人员(在 GCC irc 频道上,如nvl或GCC 开发人员邮件列表所建议的那样)解释记录不佳(或根本没有)记录的内容。
- 事实上,程序理解是一个活跃的研究领域。
我建议你使用GCC irc 频道,它用于讨论 GCC 的开发。