我们最近下载,安装并编译了gcc-3.0.4代码。 gcc编译器已经成功构建,我们可以编译一些相同的测试cpp文件。我想知道,这样我们增加额外的运行时间调试语句就像我的GCC编译执行二进制应打印下面的语句在日志文件中,我们可以如何修改gcc的源代码:运行时调试
filename.cpp :: FunctionName#linenumber-statement
或我可以通过此定制编译器代码插入的任何其他信息。
我们最近下载,安装并编译了gcc-3.0.4代码。 gcc编译器已经成功构建,我们可以编译一些相同的测试cpp文件。我想知道,这样我们增加额外的运行时间调试语句就像我的GCC编译执行二进制应打印下面的语句在日志文件中,我们可以如何修改gcc的源代码:运行时调试
filename.cpp :: FunctionName#linenumber-statement
或我可以通过此定制编译器代码插入的任何其他信息。
你看过宏__FILE__
和__LINE__
?他们为你做这些而不修改编译器。有关更多信息,请参阅here。我对GCC体系结构的一般理解是,它分为前端(解析器),中间(在特殊中间语言中进行优化)和后端(生成平台相关输出)。所以,为了您的目的,您必须查看后端部分。
GCC 3.0是一个非常旧的版本,3.x系列在很多方面都很差。你为什么不使用更新的东西?另外,如果使用-g标志,编译器已经插入了这类调试信息。 – 2010-03-30 10:12:20
@尼尔,我同意,但“很老”几乎是轻描淡写。根据http://gcc.gnu.org/news.html,3.0.4于2002年2月发布。这不仅仅是古老的,古老的。 – Glen 2010-03-30 10:44:03
@Glen我仍然使用Win2K,所以把它称为古代会有点虚伪:-) – 2010-03-30 10:45:31