nm命令使用

nm在linux中列出目标文件的符号清单,常用来查看动态链接库中的函数

nm支持的选项如下

-a   按照man手册,仅列出调试信息,实际上却是调试信息+正常信息

-A   增加一列显示目标文件,没有实际意义

-C   将低级符号信息编码成便于查看的用户信息,最终效果是符号清单呈现出class::memberfunction形式的信息,最常用的选项

-D   显示动态符号,以目标文件为so为例,显示了so中增加的符号信息以及so引用的so的符号信息

-f   指定不同的输出格式,改变命令输出格式

-g   仅显示外部符号,实测和-D选项输出几乎一样

-l   显示符号的行号,附加一列显示符号在xx文件的xx行定义    较常用

-n   将符号按照地址进行排序

-p   不排序符号,使用该选项后的输出没有按照地址也没有按照符号名称排序

-r   逆序输出符号

-u   仅显示未定义符号,实测列出了GLIBC中的memset、memcpy等,不清楚具体作用

-h   显示帮助

-V   版本信息

root@master:/home/linxx/SD/02.main_control# nm monitor_zebra_crossing_red_light.o | grep RsiAsnDsmpLtev
nm: 'monitor_zebra_crossing_red_light.o': No such file
root@master:/home/linxx/SD/02.main_control# nm ./monitor/monitor_zebra_crossing_red_light.o | grep RsiAsnDsmpLtev
nm: './monitor/monitor_zebra_crossing_red_light.o': No such file
root@master:/home/linxx/SD/02.main_control# nm ./obj/monitor_zebra_crossing_red_light.o | grep RsiAsnDsmpLtev
                 U _Z14RsiAsnDsmpLtevP10MessageSet        其中的 U ----------》表示这个库未定义
root@master:/home/linxx/SD/02.main_control# nm /;
Display all 3530 possibilities? (y or n)
root@master:/home/linxx/SD/02.main_control# nm /;
nm: Warning: '/' is a directory
root@master:/home/linxx/SD/02.main_control# nm ./Lib/libsutpcv2x_message.so | grep RsiAsnDsmpLtev
000000000001bcc0 T RsiAsnDsmpLtev                            其中的 T---------》表示已定义
root@master:/home/linxx/SD/02.main_control#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值