视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
linux nl命令 linux安装vim命令 linux怎么执行命令 linux nano命令 linux安装yum命令 linux test命令 linux 抓包命令 linux安装git命令 linux启动redis命令 linux网络配置命令 linux安装unzip命令 linux远程连接命令 linux抓包命令 beach是什么意思 linux删除网卡命令 linux安装gcc命令 linux排序命令 linux解压tar命令 linux查看redis命令 because和because of区别 back是什么意思 ubuntu查看进程的命令 linux ss命令 linux中sleep命令 linux sz命令安装 linux docker命令 linux tr命令 linux安装rz命令 linux wc命令 linux type命令 linux安装java的命令 linux du命令 linux at命令 linux scp 命令 linux安装宝塔命令 linux ln命令 linux ll命令 linux网络管理命令 linux的远程登录命令 linux tree命令安装
linux nm命令
2021-11-04 17:50:56 责编:李赢赢
文档

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:仅显示定义的符号


以上就是小编今天的分享了,希望可以帮助到大家。

下载本文
显示全文
专题linux nl命令linux nl命令专题linux安装vim命令linux安装vim命令专题linux怎么执行命令linux怎么执行命令专题linux nano命令linux nano命令专题linux安装yum命令linux安装yum命令专题linux test命令linux test命令专题linux 抓包命令linux 抓包命令专题linux安装git命令linux安装git命令专题linux启动redis命令linux启动redis命令专题linux网络配置命令linux网络配置命令专题linux安装unzip命令linux安装unzip命令专题linux远程连接命令linux远程连接命令专题linux抓包命令linux抓包命令专题beach是什么意思beach是什么意思专题linux删除网卡命令linux删除网卡命令专题linux安装gcc命令linux安装gcc命令专题linux排序命令linux排序命令专题linux解压tar命令linux解压tar命令专题linux查看redis命令linux查看redis命令专题because和because of区别because和because of区别专题及时止损什么意思及时止损什么意思专题开曼群岛注册公司的好处开曼群岛注册公司的好处专题快递费入什么会计科目快递费入什么会计科目专题快递取件码怎么查快递取件码怎么查专题been是什么意思been是什么意思专题快递投诉电话快递投诉电话专题羚羊和猎豹谁跑得快羚羊和猎豹谁跑得快专题猫咪踩奶是什么意思猫咪踩奶是什么意思专题beta什么意思beta什么意思专题猫咪品种有哪些猫咪品种有哪些专题八零后小吃图片大全专题吧,b专题安阳pe管材专题奥特曼游戏内购破解版大全专题吧机哪家好专题八路军正参谋长是谁专题八零小厨子专题八路军郑川专题八路循环彩灯电路图专题吧十年手机旧版专题八路军689团专题澳门吕志和专题奥德赛ghac电动尾门专题八荒武帝下载专题八年级下册物理题浮力专题扒炉煎牛排用多少度专题八路军为什么穿圆口布鞋专题八小时工作制度最早在哪个国家出现专题吧视频中的声音加上字幕专题八六拍是专题