有没有办法(g++选项?)要检查C++编译器隐式生成哪些代码(例如,所有默认构造函数/析构函数)?
拥有生成的C++代码将是理想的,但至少程序集是好的。使用:
g++ -S -g -O0 <file.cpp>
不会给我任何带有生成的构造函数/析构函数的标签。
发布于 2014-07-21 00:48:50
我认为-fdump-tree-original
是你所能得到的最接近的选项。不幸的是,它将同时显示您自己的代码和自动生成的代码,但是它不会标记哪个是哪个。然而,它是GCC转储中最易读的,它显示了在执行任何优化之前生成的代码。
另一种选择是使用-fdump-translation-unit
。它创建了一个原始的树转储,其中包含了所有的东西。编译器组成的节点将被标记为“人工的”。然而,这种格式对人类来说并不容易读懂,甚至对于一个琐碎的源文件也是如此。要从中获取任何有用的信息,您可能需要编写一个程序来读取它,然后遍历树来找到您感兴趣的节点,并将它们打印出更具可读性的格式。
https://stackoverflow.com/questions/24858014
复制