gpt4 book ai didi

c++ - 检查 C++ 编译器隐式生成的代码

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:31:09 24 4
gpt4 key购买 nike

有没有办法(g++ 选项?)检查 C++ 编译器隐式生成的代码(例如所有默认构造函数/析构函数)?

拥有生成的 C++ 代码将是理想的,但至少汇编会很好。使用:

g++ -S -g -O0 <file.cpp>

没有给我任何带有生成的构造函数/析构函数的标签。

最佳答案

我认为选项 -fdump-tree-original 与您所能得到的差不多。不幸的是,它会同时显示您自己的代码和自动生成的代码,但不会标明哪个是哪个。然而,它是 GCC 转储中最易读的,它显示了在执行任何优化之前生成的代码。

另一种选择是使用 -fdump-translation-unit。这会创建一个树的原始转储,其中几乎包含所有内容。编译器组成的节点将被标记为“人工”。然而,这种格式对人类来说并不容易阅读,即使对于一个微不足道的源文件,也有很多内容需要费力才能阅读。要从中获取任何有用的信息,您可能需要编写一个程序来读取它,然后遍历树以找到您感兴趣的节点并以更易读的格式打印出来。

关于c++ - 检查 C++ 编译器隐式生成的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24858014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com