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相关推荐

  1. 运行shell命令并捕获输出

    我想编写一个函数,该函数将执行shell命令并以字符串形式返回其输出,无论它是错误消息还是成功消息. 我只想获得与命令行相同的结果. 能做到这一点的代码示例是什么? 例如: def run_comma ...

  2. 几个常用的文本处理shell 命令:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk

    内容目录: find 文件查找 grep 文本搜索 xargs 命令行参数转换 sort 排序 uniq 消除重复行 用tr进行转换 cut 按列切分文本 paste 按列拼接文本 wc 统计行和字符 ...

  3. Python 标准库之 os (获取当前目录、读取/设置环境变量、重命名文件、运行shell命令、创建/删除/查看目录文件、判断目录/文件/存在、获取绝对路径、获取文件名、获取换行符、获取路径分隔符)

    1. os与sys模块的官方解释如下: os This module provides a portable way of using operating system dependent funct ...

  4. 2021年大数据Kafka(四):❤️kafka的shell命令使用❤️

    全网最详细的大数据Kafka文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Kafka的shell命令使用 一.创建topic 二.生产 ...

  5. 2021年大数据Hadoop(八):HDFS的Shell命令行使用

    2021大数据领域优质创作博客,带你从入门到精通,该博客每天更新,逐渐完善大数据各个知识体系的文章,帮助大家更高效学习. 有对大数据感兴趣的可以关注微信公众号:三帮大数据 目录 HDFS的Shell命 ...

  6. jenkins 插件执行shell命令时,提示“Command not found”处理方法

    首先提示找不到"Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具 ...

  7. hbase 数据插入指定rowkey_「HBase大爆炸」HBase之常用Shell命令

    HBase之常用Shell命令 1.进入 HBase客户端命令操作界面 2.查看帮助命令 3.查看当前数据库中有哪些表 4.创建一张表 创建user表,包含info.data两个列族 或者 5.添加数 ...

  8. awk命令中执行多条shell命令

    awk中使用的shell命令,有2种方法: 一.使用system() 二.使用print cmd | "/bin/bash" http://www.gnu.org/software ...

  9. 【Linux学习笔记】 -- 基本Shell命令

    常见的目录名均基于文件系统层级标准(filesystem hierarchy standard,FHS) Linux的四个部分: 1 Linux内核:控制所有硬软件,必要时分配硬件根据需要执行软件 系 ...

最新文章

  1. 第6章-一阶多智体系统一致性-->6.3 连续时间含时滞多智能体系统一致性
  2. Delphi程序的主题(Theme)设置
  3. 本周ASP.NET英文技术文章推荐[03/25 - 03/31]
  4. MySQL的变量分类总结
  5. 《Python机器学习——预测分析核心算法》——2.4 基于因素变量的实数值预测:鲍鱼的年龄...
  6. ASP.NET 实现文件下载
  7. arraycolumn php5.4以下怎么用,兼容php5.4和更低版本php的array_column公共方法
  8. OpenGL超级宝典(第7版)之第八章基元处理
  9. 计算机网络常用操作系统,计算机目前常用的操作系统有哪些?
  10. 调用python-nmap实现扫描局域网存活主机
  11. mac如何查看本地ip
  12. 阿里云有奖调查结果公布,赠送10个阿里巴巴logo胸针...
  13. trueOS能装linux软件,TrueOS 17.12发布下载,一款基于FreeBSD的桌面Linux系统
  14. vm14下centos7配置NAT模式
  15. js 实现 hasClass(), addClass(), removeClass() 方法
  16. 导线型号与其载荷电流对照表
  17. Android百度地图(三):百度地图画运动轨迹及图层点击事件处理
  18. Vegas使用技巧——怎么用Vegas叠加视频和图片素材
  19. 检验杜宾 瓦森检验法R语言_应用统计学与R语言实现学习笔记(九)——线性回归...
  20. Codeforce-126B:Password(KMP模板题)

热门文章

  1. 在计算机领域做研究的一些想法(转)
  2. 用HEdit解决因修改用户文件夹名在打开pip时遇到Fatal error in launcher: Unable to create process using 的问题
  3. mmdetection config文件中几个参数的理解(anchor_scales,anchor_ratios,anchor_strides)
  4. java实现图片的压缩且保留图片尺寸不变
  5. win10无限蓝屏_win10蓝屏died怎么办_win10无限process died解决方法
  6. 显卡的性能看哪些参数?
  7. 如何解决外边距重叠问题
  8. XMind中记笔记的一些实用技巧!
  9. C语言有大约40个运算符,最常用的有这些
  10. 联想服务器AR系列,目前为止最好的AR游戏设备竟然出自联想