欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > 【Linux】使用nm命令查看动态库包含的符号表

【Linux】使用nm命令查看动态库包含的符号表

2024/10/24 12:25:37 来源:https://blog.csdn.net/qq_44940689/article/details/141181964  浏览:    关键词:【Linux】使用nm命令查看动态库包含的符号表

【Linux】使用nm命令查看动态库包含的符号表

文章目录

  • 【Linux】使用nm命令查看动态库包含的符号表
    • 1. `nm`的简介
    • 2. `nm`的使用
    • 3. `nm`查找具体的函数名或变量名
    • Reference

1. nm的简介

nm命令来自name的简写。nm命令常用于查看二进制文件中的符号表,通常用于静态库和可执行文件。对于动态库(如 .so 文件),你可以使用nm命令结合特定的选项来查看符号表。

2. nm的使用

假设你有一个动态库libexample.so,要查看它的符号表,可以运行以下命令:

nm -D libexample.so

输出的结果可能如下所示:

0000000000001120 T my_functionU printf
0000000000001190 T another_function

nm命令的输出通常包含三列信息:

  • 符号地址:该符号在内存中的地址(如果已加载)。
  • 符号类型:例如 T 表示代码段中的符号(函数),D表示数据段中的符号(全局变量),U表示未定义的符号(需要从其他库解析)。
  • 符号名称:具体的函数名称或变量名称。

3. nm查找具体的函数名或变量名

nm命令可以联合使用管道(pipe)|和筛选命令grep来查找具体的函数名,举个例子:

nm ./libexample.so | grep my_function

就可以从 nm所呈列的信息中寻找名为my_function的函数

Reference

[1]【Linux】nm命令|查看动态库包含的函数符号

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com