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:仅显示定义的符号
-
安全气囊灯亮修理贵吗?
多数是线路接触不良或者插头接触不良,维修费很难说,看看是遇到什么样的师傅。如果拆中控台可能要300元左右吧,配件坏另外算:1、安全气囊主要是为了防止汽车碰撞时车内乘员和车内部件...
问答查看全文>> -
三菱帕杰罗曲轴位置传感器在哪里?
三菱帕杰罗曲轴位置传感器位于发动机和变速箱连接位置。曲轴位置传感器的原理是提供点火时刻(点火提前角)、确认曲轴位置的信号,用于检测活塞上止点、曲轴转角及发动机转速。曲轴位置传感...
问答查看全文>> -
本地车辆过户要什么材料?
车辆过户要以下这些手续:1、交易方式,需要到机动车登记服务站办理相关手续,办理点可以是本人身份证所属车管所或转让方身份证所属车管所,转让方不必本人去办理。需要写出申请,然后携带...
问答查看全文>> -
方向盘突然变重是什么原因?
方向盘突然变重的原因:1、如果是新车一直很重,那么应该就是如此设计的。如果是以前好的,后来变重了。检查一下方向盘设置,还有可能是车辆异常或故障。比如助力泵坏了,助力泵缺油,皮带...
问答查看全文>>
推荐
- 1临时牌照未归档怎么办113
- 2摇篮哪个牌子好 摇篮十大品牌排行榜459
- 3大寒节气问候朋友短信431
- 4干豆角要怎么泡软323
- 5高考百日冲刺誓词简短343
- 6电动助力转向变重是啥原因439
- 7花知晓口红好用吗 花知晓小天使口红试色214
- 8汽车故障代码113怎么解决487
家常菜
- 1南瓜果子385
- 2冰姜茶和榛味冰沙467
- 3可丽饼视频305
- 4小时候最喜欢吃的胡萝卜炒肉片283
- 5鲜虾冬瓜茸308
- 6羊肉配羊肉浓汤和蔬菜199
- 7豆浆锅280
- 8茶树根278