我正在尝试获取已编译的c文件的动态符号表的内容
#include<stdio.h>
int main(){
printf("Hello, World!");
return 0;
}
作为Linux上的可移植可执行文件(PE),
i686-w64-mingw32-gcc hello_world.c -o hello32
x86_64-w64-mingw32-gcc hello_world.c -o hello64
使用objdump:
objdump --dynamic-syms hello32
并得到输出:
hello32: file format pei-i386
objdump: hello32: not a dynamic object
DYNAMIC SYMBOL TABLE:
no symbols
我希望在表中有类似printf的函数。它适用于GCC和ELF二进制文件。
有谁知道如何正确编译文件以获得一个包含内容的动态符号表吗?
2条答案
按热度按时间xkftehaa1#
objdump -p <file>
或objdump -x <file>
并在输出中查找 import tables。我还没有找到一个更好的binutils解决方案。LLVM中的llvm-readobj --coff-imports <file>
。如果你想在运行时查看符号的来源,ntldd是一个很好的工具。dwbf0jvd2#
试试看:
printf将出现在输出表中。