经consteval与反射处理后的输出文件

编程语言 2026-07-09

我知道我可以得到预处理后的文件。我也知道我可以得到汇编文件。

是否有办法得到一个在consteval、反射等处理之后的中间文件?这样就能确保生成的代码看起来符合我的预期。

我正在使用GCC的每周快照,因为16.1.1存在一个会破坏我的代码的缺陷。

我在使用 import std;。当我尝试使用 -save-temps 时,我遇到了这个错误:

fatal error: ‘-MF’ and ‘-fdeps-file=’ cannot share an output file test/exco_test/CMakeFiles/exco_test.dir/exco_test.cpp.s

解决方案

最可靠的查看输出的方法要么是

  1. 从源代码编译GCC,并在合适的位置添加printf/cout。
  2. 使用带调试符号的GCC进行编译/下载,并在代码生成步骤之前设置断点。

处理consteval和模块实例化的代码可能分布在多个文件中,比如gcc/cp、gcc/tree-cfg.cc或 gcc/cp/constexpr.cc,因此你可能需要用grep搜索一下,找到要添加printf/断点的正确的file:line。

参考 tree consteval_block 的信息会有帮助。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章