首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我们可以检查目标文件中是否存在由C++编译器引入的临时程序吗?

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

Stack Overflow用户
提问于 2010-11-24 22:52:43
回答 4查看 961关注 0票数 0

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

代码语言:javascript
运行
复制
//file1.cpp
void func(const int& num){}
int main(){   func(2);  }
EN

回答 4

Stack Overflow用户

发布于 2010-11-24 22:56:29

我能想到的最简单的方法是加载一个使用目标文件的程序,然后在调试器中反汇编函数。您发布的程序代码可以很好地解决这个问题。只需中断对func的调用,然后在单步执行函数时显示汇编程序。

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

如果你有源代码,大多数编译器都允许你输出汇编程序,有时会和源代码混在一起。对于可视化C++,这是/Fa

票数 3
EN

Stack Overflow用户

发布于 2010-11-24 22:56:42

如果您使用的是ELF系统,并且拥有GNU binutils,那么可以使用-s开关调用readelf

票数 0
EN

Stack Overflow用户

发布于 2010-11-24 22:58:41

如果您有可用的源代码,那么查看由编译器生成的汇编文件(-save-temps对于gcc)可能会更容易一些。否则,objdump就是你的朋友。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4268087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档