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

18 篇文章 0 订阅

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

1. nm的简介

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

2. nm的使用

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

nm -D libexample.so

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

0000000000001120 T my_function
                 U 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命令|查看动态库包含的函数符号

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值