c++ - 我们可以检查目标文件中是否存在 C++ 编译器引入的临时文件吗?

标签 c++ temporary temporaries

有没有办法检查从下面的代码(file1.o)生成的目标文件是否存在临时引入的编译器?我们可以使用什么工具从目标文件中获取此类信息?

//file1.cpp
void func(const int& num){}
int main(){   func(2);  }

最佳答案

我能想到的最简单的方法是加载一个使用目标文件的程序并在调试器中反汇编该函数。您发布的程序代码适用于此。只需中断对 func 的调用,然后在单步执行该函数时显示汇编程序。

在更复杂的程序中,您通常可以按名称显示给定函数的汇编代码。检查您的调试器文档以了解如何执行此操作。在 Windows (Visual Studio) 上,您可以打开 Disassembly 窗口并输入函数名称以显示汇编代码。

如果您有源代码,大多数编译器都允许您输出汇编程序,有时会与源代码混合在一起。对于 Visual C++,这是 /Fa .

关于c++ - 我们可以检查目标文件中是否存在 C++ 编译器引入的临时文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4268087/

相关文章:

c++ - 将 std::filesystem 头文件添加到我的程序时编译错误

c++ - unordered_set 将元素存储为指针

java - PreparedStatement 只对数据库进行临时更改还是可以将其永久更改?

mysql - 选择临时表中具有最大值的所有行

c++ - 拷贝构造函数、析构函数和临时变量

c++ - 派生类中的私有(private)重写虚函数

c++ - 为什么 npm install ffi 返回错误。使用 Node 版本 12

mysql - 选择多个案例

c++ - BOOST_FOREACH 对 boost::shared_ptr<list> 的迭代

python - Python中列表理解内部表达式的引用值(value)?