linux系统nm相关命令
-
Linux系统中,nm命令是一个非常有用的工具,用于查看可执行文件(应用程序或库文件)中的符号表信息。它可以显示出可执行文件中的所有符号,包括函数名、全局变量等。下面是一些常用的nm相关命令。
1. nm
:该命令用于查看一个可执行文件的符号表信息。其中, 可以是一个可执行文件名或者一个共享库文件名。 2. nm -C
:这个命令与上一个命令类似,但是会对C++名字进行一个简化,使得输出结果更易读。 3. nm -D
:这个命令用于查看可执行文件中的动态符号表信息,也就是查看运行时动态链接的符号。 4. nm -a
:这个命令用于显示符号表中的所有符号,包括局部符号和全局符号。 5. nm -r
:这个命令用于显示只读符号,也就是只在可执行文件中使用,而不被外部程序使用的符号。 6. nm -S
:这个命令用于显示文件中的符号与文件中的节(section)的对应关系。 以上是常用的一些nm相关命令。使用这些命令,我们可以方便地查看可执行文件中的符号信息,对于调试和分析程序非常有帮助。希望以上内容对您有所帮助。
2年前 -
在Linux系统中,nm是一个非常有用的命令,用于显示目标文件中的符号信息。以下是一些常用的nm命令及其功能:
1. nm -A
2. nm -C
3. nm -D
4. nm -g
5. nm -u
6. nm -r
7. nm -p
8. nm –demangle
9. nm -n
10. nm –defined-only
除了以上命令,还有其他一些选项和参数可用于定制nm命令的输出。可以通过man nm命令查看nm命令的详细用法和选项解释。
2年前 -
在Linux系统中,nm命令用于列出目标文件、共享库或可执行文件的符号表。符号表是用来记录程序中定义的全局变量、全局函数和全局对象的地方。nm命令可以帮助我们查看目标文件的符号信息,包括符号类型、符号地址和符号名称等。
以下是一些常用的nm相关命令和操作流程:
1. 基本用法
nm命令的基本用法如下:
“`
nm [选项] [目标文件]
“`其中,选项可以是下面几种:
– -A或–without-arch:不显示体系结构类型。
– -C或–demangle:将C++函数名还原为可读形式。
– -D或–dynamic:显示动态符号表。
– -g或–extern-only:只显示外部符号。
– -n或–numeric-sort:按照地址排序。
– -o或–print-file-name:在每个输出行前显示文件名。
– -p或–portability:一行只显示一个符号。
– -P或–no-sort:
– -r或–reverse-sort:以相反的顺序排序。
– -s或–size-sort:按照大小排序。
– -S或–print-size:在每个输出行前显示符号大小。目标文件可以是二进制文件、目标文件、静态库、共享库等。
2. 显示符号表
要查看目标文件的符号表,可以使用以下命令:
“`
nm 目标文件
“`例如,查看可执行文件a.out的符号表:
“`
nm a.out
“`3. 过滤符号类型
如果只想显示特定类型的符号,可以使用以下命令:
“`
nm -t <类型> 目标文件
“`其中,<类型>可以是以下几种类型之一:
– b:未初始化的数据(BSS段)。
– d:已初始化的数据(DATA段)。
– r:只读数据(TEXT段)。
– t:代码段。
– U:未定义的符号。例如,只显示代码段的符号:
“`
nm -t t a.out
“`4. 查找符号
可以使用grep命令结合nm命令来查找特定的符号。例如,要查找名为`main`的符号,可以使用以下命令:
“`
nm a.out | grep ‘ main’
“`5. 显示符号的地址和大小
要显示符号的地址和大小,可以使用以下命令:
“`
nm -S 目标文件
“`例如,显示a.out的符号地址和大小:
“`
nm -S a.out
“`6.将C++函数名还原为可读形式
如果目标文件中包含了C++的命名空间、类和函数,那么nm命令默认会将它们的名称打印出来,看起来比较晦涩。为了将C++函数名还原为可读形式,可以使用以下命令:
“`
nm -C 目标文件
“`例如,将a.out中的C++函数名还原为可读形式:
“`
nm -C a.out
“`以上就是在Linux系统中使用nm命令的一些常用操作流程。nm命令非常有用,可以帮助我们了解目标文件的符号信息,从而更好地进行调试和分析。
2年前