mac下nm命令详解

2020-12-19  本文已影响0人  落叶情思

简介

从Xcode8开始,苹果在mac上nm工具使用的就是llvm-nm工具(llvm-nm工具用来列出llvm字节码文件,目标文件以及归档文件中的目标中的符号名称)。对大部分nm工具的命令选项来说,他们都有相同的可选项;但-f,-s和-L这几个选项差别较大。本文主要介绍了nm工具的各种常使用的选项的含义。

nm主要用于展示符号文件中的各种符号的名称列表。某些情况下,如果一个文件使用了strip功能也就是-T剖离了符号,这种情况下,使用nmdyld结果会不太一样,这种情况需要使用dyldinfo来查看文件.

如果输入的文件是打包过的,使用nm会列举各个文件的详情。输入的文件可以是标准的libx.a(x.o)文件,会列举.a和.o文件的符号信息。

默认情况下,每个符号名的值都先于符号名出现。当使用-m选项的是,值后面会跟上如下字母,代表各个符号的类型:U(未定义的),A(绝对的),T(Text Section段的符号),D(Data Section的符号),B(bss Section的符号),C(一般符号),S(除了上面几种类型的符号外的符号),或者I(直接符号)。如果符号是本文件有的(非外部引入的),那么type就是小写的。

如果一个符号是Objective-C方法名称,符号名称就会像这样+-[Class_name(category_name) method:name:],显示,+号代表类方法,-号代表示例方法(category_name)代表这是一个类别.
默认情况下,符号是按字母表顺序排序输出的。

nm命令各个选项详细介绍

上一篇 下一篇

猜你喜欢

热点阅读