这是 avr-nm 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
nm - 列出目标文件中的符号
概要
纳米 [-A|-o|--打印文件名[-a|--调试符号]
[-B|--格式=bsd[-C|--demangle[=样式]]
[-D|- 动态的[-f格式|--格式=格式]
[-g|--external-only[-h| - 帮帮我]
[-l|--行号[-n|-v|--数字排序]
[-P|- 可移植性[-p|--无排序]
[-r|--反向排序[-S|--打印尺寸]
[-s|--打印-armap[-t 基数|--基数=基数]
[-u|--仅未定义[-V|- 版]
[-X 32_64[--只定义[--无分割]
[- 插入 姓名[--大小排序[--特殊符号]
[- 合成的[--目标=名称]
[目标文件...]
商品描述
GNU nm 列出目标文件中的符号 目标文件.... 如果没有目标文件被列为
论据, nm 假设文件 出.
对于每个符号, nm 说明:
· 符号值,以选项选择的基数(见下文),或十六进制
默认。
· 符号类型。 至少使用了以下类型; 其他人也是,
取决于目标文件格式。 如果是小写,符号通常是本地的; 如果
大写,符号是全局的(外部的)。 但是有一些小写符号
显示的特殊全局符号(“u”、“v”和“w”)。
"A" 符号的值是绝对值,不会因进一步链接而改变。
“B”
"b" 符号位于未初始化的数据部分(称为 BSS)中。
“C”符号很常见。 公共符号是未初始化的数据。 链接时,
多个常用符号可能会以相同的名称出现。 如果定义了符号
在任何地方,公共符号都被视为未定义的引用。
“D”
"d" 符号在初始化数据部分。
“G”
"g" 该符号位于小对象的初始化数据段中。 一些目标文件
格式允许更有效地访问小数据对象,例如全局 int
变量而不是大型全局数组。
“i”对于 PE 格式文件,这表示该符号位于特定于
DLL 的实现。 对于 ELF 格式的文件,这表示该符号是一个
间接功能。 这是标准 ELF 符号集的 GNU 扩展
类型。 它表示一个符号,如果被重定位引用,则不会
求值到它的地址,但必须在运行时调用。 运行时
然后执行将返回要在重定位中使用的值。
“I”符号是对另一个符号的间接引用。
“N”符号为调试符号。
"p" 符号位于堆栈展开部分。
“R”
"r" 符号在只读数据段中。
“S”
"s" 符号位于小对象的未初始化数据段中。
“ T”
“t”符号在文本(代码)部分。
“U” 符号未定义。
“u”符号是唯一的全局符号。 这是标准集的 GNU 扩展
ELF 符号绑定。 对于这样的符号,动态链接器将确保
在整个过程中,只有一个具有此名称和类型的符号在使用。
“ V”
“v”符号是弱对象。 当弱定义符号与法线连接时
定义的符号,使用正常的定义符号没有错误。 当一个弱
undefined 符号被链接且符号未定义,弱的值
符号变为零而没有错误。 在某些系统上,大写表示
已指定默认值。
“ W”
“w”符号是一个弱符号,没有被专门标记为弱对象
象征。 当弱定义符号与正常定义符号链接时,
使用正常定义的符号没有错误。 当弱未定义符号是
链接且符号未定义,符号的值在一个
系统特定的方式没有错误。 在某些系统上,大写表示
已指定默认值。
"-" 该符号是 a.out 目标文件中的一个 stabs 符号。 在这种情况下,下一个
打印的值是 stabs 其他字段、stabs desc 字段和 stab 类型。
Stabs 符号用于保存调试信息。
“?” 符号类型未知,或特定于目标文件格式。
· 符号名称。
配置
此处显示为备选方案的长选项和短选项是等效的。
-A
-o
--打印文件名
在每个符号前面加上它所在的输入文件(或归档成员)的名称
在所有符号之前找到,而不是仅识别输入文件一次。
-a
--调试符号
显示所有符号,甚至是调试器专用的符号; 通常这些都没有列出。
-B 与...相同 --格式=bsd (为了与 MIPS 兼容 nm).
-C
--去角度[=样式]
解码 (破坏) 低级符号名称转换为用户级名称。 除了删除任何
系统在前面加上初始下划线,这使得 C++ 函数名称可读。
不同的编译器有不同的修改风格。 可选的拆线方式
参数可用于为您的编译器选择合适的解压缩样式。
--无分割
不要破坏低级符号名称。 这是默认设置。
-D
- 动态的
显示动态符号而不是普通符号。 这才有意义
用于动态对象,例如某些类型的共享库。
-f 格式
--格式=格式
使用输出格式 格式,可以是“bsd”、“sysv”或“posix”。 默认是
“bsd”。 只有第一个字符 格式 意义重大; 它可以是上部或
小写。
-g
--external-only
仅显示外部符号。
-h
- 帮帮我
显示选项的摘要 nm 并退出。
-l
--行号
对于每个符号,使用调试信息来尝试查找文件名和行号。
对于定义的符号,查找符号地址的行号。 为
未定义符号,查找重定位条目的行号,该条目引用
象征。 如果可以找到行号信息,则将其打印在其他符号之后
信息。
-n
-v
--数字排序
按地址数字排序符号,而不是按字母顺序排序
名称。
-p
--无排序
不要费心以任何顺序对符号进行排序; 按照遇到的顺序打印它们。
-P
- 可移植性
使用 POSIX.2 标准输出格式而不是默认格式。 相当于
-f POSIX.
-r
--反向排序
颠倒排序的顺序(无论是数字还是字母); 让最后一个来
第一。
-S
--打印尺寸
打印“bsd”输出样式的已定义符号的值和大小。 这个选项
对不记录符号大小的对象格式没有影响,除非 --大小排序
在这种情况下也会使用计算出的大小。
-s
--打印-armap
当列出来自档案成员的符号时,包括索引:一个映射(存储在
存档由 ar or 运行库) 哪些模块包含哪些名称的定义。
-t 基数
--基数=基数
使用 基数 作为打印符号值的基数。 肯定是 d 对于十进制, o
对于八进制,或 x 为十六进制。
-u
--仅未定义
仅显示未定义的符号(每个目标文件外部的符号)。
-V
- 版
显示版本号 nm 并退出。
-X 为了与 AIX 版本的 nm. 需要一个
参数必须是字符串 32_64. AIX 的默认模式 nm 对应于
-X 32, GNU 不支持 nm.
--只定义
仅显示每个目标文件的定义符号。
- 插入 姓名
加载插件调用 姓名 添加对额外目标类型的支持。 这个选项是
仅当工具链构建时启用了插件支持时才可用。
--大小排序
按大小对符号进行排序。 大小计算为
符号和具有下一个更高值的符号的值。 如果“bsd”输出
格式用于打印符号的大小,而不是值,并且 -S 必须
用于打印大小和值。
--特殊符号
显示具有特定于目标的特殊含义的符号。 这些符号是
通常由目标用于某些特殊处理并且通常没有帮助
当包含在普通符号列表中时。 例如对于 ARM 目标这个选项
将跳过用于标记 ARM 代码、THUMB 代码之间转换的映射符号
和数据。
- 合成的
在输出中包含合成符号。 这些是由创建的特殊符号
用于各种目的的链接器。 默认情况下不显示它们,因为它们不是
二进制文件的原始源代码。
--目标=名称
指定系统默认格式以外的目标代码格式。
@文件
从中读取命令行选项 文件. 读取的选项被插入代替
原来的 @文件 选项。 如果 文件 不存在或无法读取,则该选项
将按字面处理,而不是删除。
中的选项 文件 由空格分隔。 可以包含空格字符
通过用单引号或双引号将整个选项括在一个选项中。 任何
字符(包括反斜杠)可以通过在字符前加上前缀来包含
包含反斜杠。 这 文件 可能本身包含额外的@文件 选项; 任何
这些选项将被递归处理。
使用 onworks.net 服务在线使用 avr-nm