如何在OSX中打印.so文件的符号列表
How to print symbol list for .so file in OSX?
我有一个.SO文件(注意,不是.a,不是.dylib和.o),我需要在OSX上从中获取符号信息。
我试过了
nm -gU lib.so
但是,没有打印任何内容。
我不能使用 otool,因为它不是目标文件,并且 toelf 在 OSX 上不存在。如何获取交易品种信息?
请注意,我在另一个项目中使用此.so文件,并且有符号信息。我能够加载库,并从中引用函数。但是,我还没有在OSX上找到一个工具,让我从中打印符号信息。
正如所问,
file lib.so
ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, stripped
尝试使用从nm
管道传输c++filt
:
nm lib.so | c++filt -p -i
c++filt - Demangle C++ 和 Java 符号。
-p --无参数 拆解函数名称时,不要显示 函数的参数。
-我 --不啰嗦 不要在拆除的中包含实现详细信息(如果有) 输出。
编辑:根据问题中提供的新(ARM)信息,尝试改用symbols
:
symbols lib.so -arch arm | awk '{print $4}'
我用awk
来简化输出;删除以输出所有内容。
手册页:符号
https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/nm.1.html Nm 显示参数列表中每个对象文件的名称列表(符号表)。 如果参数是 将生成一个存档,即存档中每个对象文件的列表。 文件可以是以下形式 libx.a(x.o),在这种情况下,仅列出来自目标文件该成员的符号。 (括号- 必须引用这些内容才能得到壳牌。 如果未给出文件,则列出 a.out 中的符号。
- 使用gcc从静态链接的文件中查找可选符号
- 检测 COFF 对象文件中C++内联符号
- 使用 fopen 打开 .pak 文件并使该文件应用于 const 无符号字符* (C++)
- 如何从二进制文件中的给定符号中获取调用程序图
- 如何将 UTF-8 文本从文件转换为某个可以迭代的容器,并检查每个符号是否为C++字母数字?
- CMake 生成的 MSVC 项目找不到符号,即使为其相关 dll 正确生成了 lib 文件也是如此
- 错误:当我从"WinDbg"打开可执行文件时,找不到符号文件。默认导出 ntdll 的符号.dll
- 可以在 cpp 文件中C++定义为特殊符号的变量β
- 尝试将字符串从文件读取到无符号字符向量中
- C++和带有国家符号的文件路径(也许用 UTF8 编码)
- OSX clang++:用于 cpp 文件中显式实例化模板的体系结构x86_64的未定义符号
- 生成文件:体系结构x86_64的未定义符号
- 标头保护文件中结构的重复符号
- 使用共享库编译可执行文件时仅链接所需的符号
- C++ - 将任何文件的字节读取到无符号字符数组中
- 体系结构x86_64的未定义符号:c++/ h 文件和 cpp 文件
- c/c 的文件/符号依赖图形可视化
- 计算 c# 中二进制文件符号的频率不起作用,但适用于等效的 c++ 代码
- Visual c++资源文件符号
- 创建一个只包含所有目标文件符号的文件时应该使用什么命令?