nm 输出缺少符号名称

nm output missing symbol name

nm -n 文件的输出如下所示:

0000000000800000 A _stack                                                                                                                                                                     
0000002001000000 W _RELAX_END_
0000002001000010 T _start
0000002001000024 t
0000002001000024 T f1
0000002001000036 t
0000002001000036 T f2
0000002001000052 t
0000002001000052 T f4
0000002001000064 t
0000002001000064 T f5
0000002001000078 t

我觉得这个输出有点奇怪。通常当我 运行 nm 我看到几乎每一行都在第三列中有一个符号名称。什么会导致像这样生成输出?例如,地址 0000002001000024 是否存在已被剥离的符号?

This output looks somewhat odd to me.

奇数。

Is there a symbol that exists at, for example, address 0000002001000024 that has been stripped?

剥离的符号不会出现在符号 table 中,这个会出现。

它可能是编译器或汇编程序的产物(错误?),出于某种原因,它会为它发出的每个全局符号发出一个名称为空的局部符号。

也有可能 一个 non-empty 名字,但是那个名字被(一个或多个)NUL 覆盖了某种混淆/anti-reverse-engineering 措施。