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 措施。
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 措施。