nm相关内容
我知道符号的名称在 shstrtab 中.但我不知道如何抓住它们.我应该将我的 shstrab 转换成 Elf64_Sym 以便我可以使用 st_name 吗? Elf64_Shdr *shdr = (Elf64_Shdr *) (data + elf->e_shoff);Elf64_Shdr *symtab;Elf64_Shdr *shstrtab;Elf64_Shdr *strtab;cha
..
我正在使用一些LLVM工具(例如 llvm-nm )作为静态库.IE.我复制了源llvm-nm.cpp,将 main(..)重命名为 llvm_nm(..),并将其编译为静态库.我想将标准输出转发到我的文件. 我尝试使用下一种方法: int out_fd,err_fd;fpos_t out_pos,err_pos;//重定向出fflush(stdout);fgetpos(stdout,&
..
我正在尝试使用与libssl的静态链接来构建libcurl.为此,我使用了以下配置: OpenSSL: LDFLAGS =“-static"LIBS =“-ldl" cURL: LDFLAGS =“-static"CPPFLAGS =“-I $(CURDIR)/$(3RDPARTY_DIR)$(OPENSSL)/includeLDFLAGS =“-L $(CURDIR)/$(3R
..
我的gdb bt调用堆栈给出了带有函数地址的函数名称.然后我做了nm binary 并生成函数名称和地址映射.当我尝试将gdb地址与nm输出匹配时,它不匹配. (gdb) bt中的函数地址太高(看起来像物理地址). gdb函数地址(例如0x00007fffe6fc150f): #9 0x00007fffe6fc150f in read_alias_file (fname=
..
我在运行时遇到未定义的符号错误,当我在相关库中查找符号时,会得到结果: nm -C -D /home/farmer/anaconda3/envs/general/lib/python3.6/site-packages/pyscannerbit/libScannerBitCAPI.so | grep empty_ U YAML::detail::node_da
..
我的iPhone应用程序无法连接iPhone模拟器时遇到了一些问题.它告诉我有未定义的符号: Undefined symbols for architecture i386: ".objc_class_name_NSRunLoop", referenced from: pointer-to-literal-objc-class-name in SampleBrowser.cp
..
我在x86 Linux上有一个用于嵌入式系统(mipsel)的交叉编译工具链.我知道如何为其构建自定义内核(我们将其称为"vmlinux"映像)以及如何通过 剥离该映像. objcopy -S -O binary vmlinux vmlinux.bin 为了进一步处理,我还需要图像的加载地址和入口点. 在之前,通过scripts/mksysmap或更明确地通过 确定它们是没有问题的 n
..
从手册上看,objdump和nm具有重叠的功能. 您何时会使用每一个?每个命令的初衷是什么? 解决方案 它们没有相似的参数. nm列出文件符号,而objdump可以显示许多有关文件的信息. objdump也可以显示符号,并且在联机帮助页中明确指出:“尽管显示格式不同,但这类似于nm程序提供的信息."
..
我想提供一个提供模板代码的库.但是,我也想尽可能地保留此代码(生成的代码)的所有权,因为我可以猜测模板通常使用的不同类型的用法.这是我要执行的操作的示例: lib1.h #include template void print_me() { std::cout
..
我知道符号的名称在shstrtab中. 但是我不知道如何抓住他们. 我应该将shstrab转换为Elf64_Sym以便使用st_name吗? Elf64_Shdr *shdr = (Elf64_Shdr *) (data + elf->e_shoff); Elf64_Shdr *symtab; Elf64_Shdr *shstrtab; Elf64_Shdr
..
我长期使用cygwin的nm命令来满足所有.lib符号调试需求,但是最近我考虑在SO答案中提及它,并意识到大多数Windows开发人员都未安装cygwin. Microsoft与nm等价的是什么,即什么命令将列出.lib文件导出的符号,.lib中的未定义符号,等等? 出于好奇,可以在此处进行示例nm手册页. 解决方案 尝试使用dumpbin.exe. MSDN dumpb
..
#include #include #include #include #include #include #include #include #include #include
..
我正在寻找Unix平台上的tool/command,以检测.so和.o文件的library依赖项. 我已经使用过ldd/nm/truss,但是我不知道检测库依赖项的正确方法. 解决方案 这取决于“检测库依赖项"的确切含义. ldd 命令适用于共享库,而不仅适用于可执行文件.它将显示在构建库时声明的共享库的依赖项: $ ldd /usr/lib/libgtk-3.so
..
让我们说libA.so依赖于libB.so,libC.so,libD.so.在未定义的符号和所需的库名称之间是否存在映射: undefined_symbol_1 comes from libB.so undefined_symbol_2 comes from libC.so undefined_symbol_3 comes from libC.so undefined_symbol_4 co
..
我这样构建程序: g++ -std=c++11 myprog.cpp -o myprog -lqpid-proton-cpp 然后我运行./myprog并收到此错误: symbol lookup error: ./myprog: undefined symbol: _ZN6proton10event_loop6injectESt8functionIFvvEE 但是,nm报告该库
..
nm -D /lib32/libc.so.6 | grep '\' 0005d0c0 T fopen 00109750 T fopen readelf -s /lib32/libc.so.6 | egrep '0005d0c0|00109750' 181: 0005d0c0 50 FUNC GLOBAL DEFAULT 12 fopen@@GLIBC_2.1 1
..
我的项目由几个静态库组成,它们在最后一步链接在一起。现在我遇到了问题,图书馆的链接顺序很重要。(否则我得到一个未定义的符号链接器错误)。有时我碰到问题,我不得不重新排序链接库(-lcommon -lsetup -lcontrol等)。目前这是一个愚蠢的尝试和错误:重新排序,编译,检查错误,重新排序,编译等。 因此,我编写了一个小程序来向我展示库间依赖关系,并为我生成链接库的顺序。它从 nm
..
我正在构建一个共享库(我们称之为“foo”),它使用了另一个库(我们称之为“bar”)。 “bar”利用了OpenSSL的一些功能。 这里是问题出现的地方。 “bar”被编译为一个静态库,看起来OpenSSL也是。因此,当我链接库(“foo”)时,我包括: $ b 用于“foo”的对象文件 静态库 libbar.a OpenSSL静态库 libcrypto.a 和 libs
..
只是给你一些上下文,这里是我想实现: 我在一个共享对象文件中嵌入一个const char *为了在.so文件本身有一个版本字符串。我正在做数据分析,这个字符串使我能够让数据知道哪个版本的软件生产它。这一切都很好。 我遇到的问题是,当我尝试从.so库直接读取字符串。我试图使用 nm libSMPselection.so | grep _version_info 并取
..
只是给你一些上下文,这里是我想实现: 我在一个共享对象文件中嵌入一个const char *为了在.so文件本身有一个版本字符串。我正在做数据分析,这个字符串使我能够让数据知道哪个版本的软件生产它。这一切都很好。 我遇到的问题是,当我尝试从.so库直接读取字符串。我试图使用 nm libSMPselection.so | grep _version_info 并取
..