为什么nm libc.so不报告任何符号?

阿列克谢

我建立了一个像这样的简单程序:

g ++ application.cpp -o application.exe

然后执行命令;

ldd application.exe
...
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 
...

我想列出libc库的所有符号:

nm /lib/x86_64-linux-gnu/libc.so.6
nm: /lib/x86_64-linux-gnu/libc.so.6: no symbols

nm --defined-only /lib/x86_64-linux-gnu/libc.so.6
nm: /lib/x86_64-linux-gnu/libc.so.6: no symbols

为什么nm没有报告符号?如果libc.so.6不是库,而是指向实际库的某种链接,那么如何找到实际库?

弗洛里安·韦默(Florian Weimer)

默认情况下,nm读取.symtabELF对象中节,这在不可重定位的对象中是可选的。使用-D/--dynamic选项,可以指示nm读取动态符号表(它们是运行时实际使用的符号)。您可能还想使用,--with-symbol-versions因为glibc广泛使用符号版本控制。

或者,您可以使用eu-readelf --symbols=.dynsymobjdump -Twreadelf -sDW不包括符号版本信息。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

删除符号链接libc.so.6后如何恢复?

为什么fwrite libc函数比syscall写函数快?

为什么Golang实现的程序不使用libc.so.6的功能,例如socket()?

为什么libc ++的vector <bool> :: const_reference不是bool?

我刚刚在机器上销毁了libc.so。我现在能做什么?

什么是/system/lib/libc.so上的本机崩溃?

libc.so中的Android ANR

修改未声明为可变的变量时,为什么编译器不报告错误?

AOSP的libc ++。so是否与NDK的libc ++ _ shared.so相同?

为什么GCC不报告未初始化的变量?

为什么在libc中可以滥用宏

rootfs中同时存在libc.so.6和libc.so

如何将libc ++与调试符号链接?

静态链接libc的正确方法是什么?

为什么Valgrind在不释放malloc的内存后不报告任何问题?

为什么尽管有-nostdlib却仍依赖libc

为什么libc ++允许递归锁定std :: mutex?

为什么rust libc对结构使用repr(packed)?

为什么要为rand软件包下载libc的货物?

为什么缺少/lib/libc.so.6?

各种`libc.so`之间有什么区别和关系?

为什么相同的可执行文件在不同的位置加载了不同的libc.so

为什么tsort在此示例中不报告任何循环?

为什么nm对于/lib/i386-linux-gnu/libc.so.6没有显示符号?

为什么 TypeScript 不报告这个打字错误?

为什么 libc 依赖于 ld.so?

libc_nonshared.a 的目的是什么?

为什么 TypeScript 不报告“错误”的函数返回类型

为什么我的 /usr/lib/x86_64-linux-gnu 目录下有 libc.so.6?