linux nm命令
linux系统下nm命令是什么呢?下面是nm命令具体介绍:
1、nm命令简介:
nm命令是linux下自带的特定文件分析工具,一般用来检查分析二进制文件、库文件、可执行文件中的符号表,返回二进制文件中各段的信息。
目标文件:常说的目标文件是程序文件(.c/.cpp,.h)经过预编译,编译,汇编过程生成的二进制文件,不经过链接过程,编译生成指令为:
gcc(g++) -c file.c(file.cpp)
将生成对应的file.o文件,file.o即为二进制文件
库文件:分为静态库和动态库,这里不做过多介绍,库文件是由多个二进制文件打包而成,生成的.a文件,示例:
ar -rsc liba.a test1.o test2.o test3.o
将test1.o test2.o test3.o三个文件打包成liba.a库文件
可执行文件:可执行文件是由多个二进制文件或者库文件(由上所得,库文件其实是二进制文件的集合)经过链接过程生成的一个可执行文件,对应windows下的.exe文件,可执行文件中有且仅有一个main()函数(用户程序入口,一般由bootloader指定,当然也可以改),一般情况下,二进制文件和库文件中是不包含main()函数的,但是在linux下用户有绝对的自由,做一个包含main函数的库文件也是可以使用的。
上述三种文件的格式都是二进制文件。
2、nm命令功能:
目标文件、库文件中、可执行文件用编辑器是无法查看其内容的(乱码),所以当我们有这个需求(例如debug,查看内存分布的时候)去查看一个二进制文件里包含了哪些内容时,这时候就将用到一些特殊工具,linux下只有nm命令可以。
3、用法:
man nm
4、常用命令参数:
-A 或-o或 --print-file-name:打印出每个符号属于的文件
-a或--debug-syms:打印出所有符号,包括debug符号
-B:BSD码显示
-C或--demangle[=style]:对低级符号名称进行解码,C++文件需要添加
--no-demangle:不对低级符号名称进行解码,默认参数
-D 或--dynamic:显示动态符号而不显示普通符号,一般用于动态库
-f format或--format=format:显示的形式,默认为bsd,可选为sysv和posix
-g或--extern-only:仅显示外部符号
-h或--help:国际惯例,显示命令的帮助信息
-n或-v或--numeric-sort:显示的符号以地址排序,而不是名称排序
-p或--no-sort:不对显示内容进行排序
-P或--portability:使用POSIX.2标准
-V或--version:国际管理,查看版本
--defined-only:仅显示定义的符号
-
小青柑茶要不要把皮去掉
小青柑茶不需要把皮去掉,小青柑茶是采用普洱熟茶与新会茶枝柑制成,成品小青柑茶富含柑香、茶香,柑吸收茶香,茶吸收柑香,柑、茶味相互融洽,从而成就了内质丰厚的小青柑,二者缺一不可,...
茶叶查看全文>> -
保时捷二手车多少钱一辆?
保时捷二手需要30万左右一辆,参数:1、在2014年,新保时捷718定位将低于目前该品牌最便宜的跑车Boxster\/Cayman,预计售价为40,000欧元,约合...
问答查看全文>> -
北京新能源车号牌如何申请
登录北京市小客车指标调控管理信息系统,进入用户中心;申请配置指标,进入配置指标申请填报页面;确认无误后,提交申请;获得申请编码;查询审核结果;参与摇号;摇号中签的,可通过窗口领...
问答查看全文>> -
五一小长假“自驾游\"丝袜美女助阵分享给你?
国际劳动节又称“一国际劳动节”、“国际************日”(International Workers' Day或者May Day),是世界上80个国家的全国性节日。定在每...
问答查看全文>> -
汽车故障代码B232611怎么解决
液位传感器内部故障造成对地短路 40%液位传感器插头进水、腐蚀造成对地短路 30%液位传感器至控制单元的线路存在破损造成对地短路 20%控制单元内部故障 10%...
问答查看全文>>
推荐
- 1三月最后一天的说说 三月再见的句子445
- 2车贷逾期一个星期影响房贷吗?210
- 3福特福睿斯噪音测评,福睿斯噪音测试视频156
- 4人生经历的挫折句子391
- 5信息系统监理师考试一年有几次379
- 6途昂有6座吗475
- 7违章未处理可以审车吗?255
- 8gs4怎么设置锁车鸣笛?160