3. nm -D:这个命令用于查看可执行文件中的动态符号表信息,也就是查看运行时动态链接的符号。 4. nm -a:这个命令用于显示符号表中的所有符号,包括局部符号和全局符号。 5. nm -r:这个命令用于显示只读符号,也就是只在可执行文件中使用,而不被外部程序使用的符号。 6. nm -S:这个命令用于显示文件中的符号...
对于一些动态库,直接nm可能查不到信息,可以通过 nm -D 命令查看。 2.4 strings 查看二进制文件中的字符串 strings信息可以打印二进制文件中的字符串信息,结合grep进行搜索,用grep命令其实可以直接在二进制文件中搜索内容,但是不够直观,用strings看起来的更直观些: strings 会把任何可打印字符串都显示出来,比nm的内容...
nm [-a|--debug-syms] [-g|--extern-only] [-B][-C|--demangle] [-D|--dynamic] [-s|--print-armap][-o|--print-file-name] [-n|--numeric-sort][-p|--no-sort] [-r|--reverse-sort] [--size-sort][-u|--undefined-only] [-l|--line-numbers] [--help][--version] [-t ...
nm命令输出结果判断符号类型: A:符号的值是绝对的,在经后的链接中也不会改变 B:符号在未初始化数据段中(BSS) D:符号在已初始化数据段中 R:符号在只读数据段中 T:符号在正文段中 U:未定义符号 ?:未知符号,或者是OBJ文件的spec ldd命令用于查看可执行文件所依赖的动态库 $ldd <file>...
-f 指定不同的输出格式,改变命令输出格式 -g 仅显⽰外部符号,实测和-D选项输出⼏乎⼀样 -l 显⽰符号的⾏号,附加⼀列显⽰符号在xx⽂件的xx⾏定义较常⽤ -n 将符号按照地址进⾏排序 -p 不排序符号,使⽤该选项后的输出没有按照地址也没有按照符号名称排序 -r ...
是names的缩写, nm命令主要是用来列出某些文件中的符号(说白了就是一些函数和全局变量等)。 下面, 我们一起来看看。 linux中的nm命令简介 nm * 1. nm: main.c: 不可识别的文件格式 nm: test.c: 不可识别的文件格式 nm: test.h: 不可识别的文件格式 ...
例如,可以使用命令`nm -D`查看某个动态共享库所依赖的其他库。 总之,nm命令可以帮助开发者查看二进制文件的符号表信息,方便调试和解决依赖问题。它是Linux开发中非常有用的一个工具。 1. 命令简介: linuxnm命令是用于显示一个或多个目标文件中的符号表的命令,它可以列出目标文件中定义和引用的符号,包括函数、全局...
2. 执行"nm g.o",观察g1,g2,g3,g4,g5五个全局变量的属性,分别为U,C,D,b,d: 3. 这些标志的含义,man手册和网上,很容易都可以查到,以下通过通过它们在文件、内存中是否占有空间的区别,更加深入的了解一下它们的含义: U g1在g.o中不会占有空间,其它.o中必须要有g1的空间,才能链接成功,否则出现"...
`-d` 或 `--defined-only`:只列出已定义的符号。例如,分析`test.c`编译后的`a.out`文件,可以看到全局变量如aaa、bbb和szTest,其中aaa未初始化在Bss段,而bbb和szTest初始化在Data段。局部变量ccc由于其局部性,不会在nm输出中出现。使用`nm a.out`命令,将展示出详细的符号列表,包括动态...