首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用`nm`命令列出本地变量

使用`nm`命令列出本地变量
EN

Stack Overflow用户
提问于 2015-12-23 19:17:41
回答 1查看 1.7K关注 0票数 1

我正在尝试使用nm命令从目标文件中提取信息,以便进行某种静态代码分析,在这种分析中,我必须计算C代码中声明的变量和函数的数量。我已经看过GNU Binutils的documentation了。我可以在nm返回的符号表中找到在全局作用域中声明的变量,但是找不到在局部作用域中声明的变量。为什么会这样呢?我如何访问它?

除了nm,还有没有其他方法可以提取我想要的信息。作为一名编译器,gcc应该生成一个符号表供其使用。我可以通过任何一个gcc命令来访问它吗?

EN

回答 1

Stack Overflow用户

发布于 2015-12-23 21:14:00

您不能从目标文件访问局部变量,因为gcc不保存有关局部变量的信息。你只能使用nm来列出目标文件的符号表。这些符号表用于链接。链接时不需要局部变量。结构和类的非静态字段也是如此。

为了查看局部变量,gcc可能会使用有关它的特殊调试信息来编译程序。但是对于静态分析来说,你应该分析目标文件中的源代码或机器代码。

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

https://stackoverflow.com/questions/34434480

复制
相关文章

相似问题

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