shell命令之nm
nm命令
http://blog.chinaunix.net/uid-7749031-id-2044727.html
linux@ubuntu:~/work/test$ nm libhello.a 1.o:
00000000 B a
00000000 T fun1U printf2.o:
00000000 T fun2U printf
linux@ubuntu:~/work/test$ nm libhisi_ext.asample_comm_vi_ext.o:
00000000 t $a
00000058 t $a
000001dc t $a
00000000 d $d
00000000 r $d
00000038 t $d
000001bc t $d
00000000 b $d
0000025c t $d
00000010 N $d
000000e0 d DEV_ATTR_6114_720P_2MUX_BASE
00000070 d DEV_ATTR_BT656D1_2MUX
00000000 d DEV_ATTR_BT656D1_4MUXU HI_MPI_VB_CreatePoolU HI_MPI_VENC_AttachVbPool
000001dc T HI_MPI_VENC_CreateChn_ExtU HI_MPI_VI_EnableDevU HI_MPI_VI_SetDevAttrU SAMPLE_COMM_VI_SetMask
00000000 T SAMPLE_COMM_VI_StartDev_ext
0000007c r __FUNCTION__.11721
00000000 b m_vbhanleU memcpyU memsetU printf
linux@ubuntu:~/work/test$ nm -g --defined-only libhisi_ext.asample_comm_vi_ext.o:
000001dc T HI_MPI_VENC_CreateChn_Ext
00000000 T SAMPLE_COMM_VI_StartDev_ext
linux@ubuntu:~/work/test$ nm -g --undefined-only libhisi_ext.asample_comm_vi_ext.o:U HI_MPI_VB_CreatePoolU HI_MPI_VENC_AttachVbPoolU HI_MPI_VI_EnableDevU HI_MPI_VI_SetDevAttrU SAMPLE_COMM_VI_SetMaskU memcpyU memsetU printf
输出信息符号对照表(参照 man nm)
符号 | 意义 |
---|---|
A | Global absolute 符号。 |
a | Local absolute 符号。 |
B | Global bss 符号。 |
C | 该符号为common。common symbol是未初始话数据段。该符号没有包含于一个普通section中。只有在链接过程中才进行分配。符号的值表示该符号需要的字节数。例如在一个c文件中,定义int test,并且该符号在别的地方会被引用,则该符号类型即为C。否则其类型为B |
b | Local bss 符号。 |
D | Global data 符号。 |
d | Local data 符号。 |
f | 源文件名称符号。 |
G | 该符号也位于初始化数据段中。主要用于small object提高访问small data object的一种方式 |
T | Global text 符号。 |
I | 该符号是对另一个符号的间接引用 |
t | Local text 符号。 |
U | 未定义符号。 |
R | Read only symbol. 比如在代码中有一个const MAXDATA = 3095; 则MAXDATA就是一个Read only symbol . 该符号位于只读数据区。例如定义全局const int test[] = {123, 123};则test就是一个只读数据区的符号。注意在cygwin下如果使用gcc直接编译成MZ格式时,源文件中的test对应_test,并且其符号类型为D,即初始化数据段中。但是如果使用m6812-elf-gcc这样的交叉编译工具,源文件中的test对应目标文件的test,即没有添加下划线,并且其符号类型为R。一般而言,位于rodata section。值得注意的是,如果在一个函数中定义const char *test = “abc”, const char test_int = 3。使用nm都不会得到符号信息,但是字符串“abc”分配于只读存储器中,test在rodata section中,大小为4。 |
N | 这是一个调试符号 |
D | 这是一个已经初始化的变量的符号。比如代码中int i = 1和char *str = "Hello"则i和str都是这种类型的符号 |
T | Text段的符号。子程序都是这种符号,比如文件中实现了一个函数function,则function就是这种符号 |
U | 未定义的符号。如果文件中引用了不存在的函数,则这些未定义的函数符号就是这种类型 |
V | weak object |
W | The symbol is a weak symbol that has not been specifically tagged as a weak object symbol. |
- | 该符号是a.out格式文件中的stabs symbol |
S | 未初始化的符号,比如全局变量int s;则s的符号就是此类型 |
shell命令之nm相关推荐
- 运行shell命令并捕获输出
我想编写一个函数,该函数将执行shell命令并以字符串形式返回其输出,无论它是错误消息还是成功消息. 我只想获得与命令行相同的结果. 能做到这一点的代码示例是什么? 例如: def run_comma ...
- 几个常用的文本处理shell 命令:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk
内容目录: find 文件查找 grep 文本搜索 xargs 命令行参数转换 sort 排序 uniq 消除重复行 用tr进行转换 cut 按列切分文本 paste 按列拼接文本 wc 统计行和字符 ...
- Python 标准库之 os (获取当前目录、读取/设置环境变量、重命名文件、运行shell命令、创建/删除/查看目录文件、判断目录/文件/存在、获取绝对路径、获取文件名、获取换行符、获取路径分隔符)
1. os与sys模块的官方解释如下: os This module provides a portable way of using operating system dependent funct ...
- 2021年大数据Kafka(四):❤️kafka的shell命令使用❤️
全网最详细的大数据Kafka文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Kafka的shell命令使用 一.创建topic 二.生产 ...
- 2021年大数据Hadoop(八):HDFS的Shell命令行使用
2021大数据领域优质创作博客,带你从入门到精通,该博客每天更新,逐渐完善大数据各个知识体系的文章,帮助大家更高效学习. 有对大数据感兴趣的可以关注微信公众号:三帮大数据 目录 HDFS的Shell命 ...
- jenkins 插件执行shell命令时,提示“Command not found”处理方法
首先提示找不到"Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具 ...
- hbase 数据插入指定rowkey_「HBase大爆炸」HBase之常用Shell命令
HBase之常用Shell命令 1.进入 HBase客户端命令操作界面 2.查看帮助命令 3.查看当前数据库中有哪些表 4.创建一张表 创建user表,包含info.data两个列族 或者 5.添加数 ...
- awk命令中执行多条shell命令
awk中使用的shell命令,有2种方法: 一.使用system() 二.使用print cmd | "/bin/bash" http://www.gnu.org/software ...
- 【Linux学习笔记】 -- 基本Shell命令
常见的目录名均基于文件系统层级标准(filesystem hierarchy standard,FHS) Linux的四个部分: 1 Linux内核:控制所有硬软件,必要时分配硬件根据需要执行软件 系 ...
最新文章
- 第6章-一阶多智体系统一致性-->6.3 连续时间含时滞多智能体系统一致性
- Delphi程序的主题(Theme)设置
- 本周ASP.NET英文技术文章推荐[03/25 - 03/31]
- MySQL的变量分类总结
- 《Python机器学习——预测分析核心算法》——2.4 基于因素变量的实数值预测:鲍鱼的年龄...
- ASP.NET 实现文件下载
- arraycolumn php5.4以下怎么用,兼容php5.4和更低版本php的array_column公共方法
- OpenGL超级宝典(第7版)之第八章基元处理
- 计算机网络常用操作系统,计算机目前常用的操作系统有哪些?
- 调用python-nmap实现扫描局域网存活主机
- mac如何查看本地ip
- 阿里云有奖调查结果公布,赠送10个阿里巴巴logo胸针...
- trueOS能装linux软件,TrueOS 17.12发布下载,一款基于FreeBSD的桌面Linux系统
- vm14下centos7配置NAT模式
- js 实现 hasClass(), addClass(), removeClass() 方法
- 导线型号与其载荷电流对照表
- Android百度地图(三):百度地图画运动轨迹及图层点击事件处理
- Vegas使用技巧——怎么用Vegas叠加视频和图片素材
- 检验杜宾 瓦森检验法R语言_应用统计学与R语言实现学习笔记(九)——线性回归...
- Codeforce-126B:Password(KMP模板题)
热门文章
- 在计算机领域做研究的一些想法(转)
- 用HEdit解决因修改用户文件夹名在打开pip时遇到Fatal error in launcher: Unable to create process using 的问题
- mmdetection config文件中几个参数的理解(anchor_scales,anchor_ratios,anchor_strides)
- java实现图片的压缩且保留图片尺寸不变
- win10无限蓝屏_win10蓝屏died怎么办_win10无限process died解决方法
- 显卡的性能看哪些参数?
- 如何解决外边距重叠问题
- XMind中记笔记的一些实用技巧!
- C语言有大约40个运算符,最常用的有这些
- 联想服务器AR系列,目前为止最好的AR游戏设备竟然出自联想