GDB是Win32下的ELF文件

时间:2013-07-31 16:58:28

标签: debugging x86 gdb nasm elf

我想学习ELF重定位机制,所以我使用NASM组装了一个x86汇编程序来生成ELF文件,但是在Win32下。然后我用mingw32的gdb来调试它。它加载得很好,我可以使用“list”命令查看程序。但是,我无法运行它。我收到了以下消息:

Starting program: c:\Projects\NasmProjects\Test01\Hello.o
Error creating process c:\Projects\NasmProjects\Test01\Hello.o

有解决方法吗?

1 个答案:

答案 0 :(得分:0)

  

有解决方法吗?

没有

首先,您已组装了一个可重定位目标文件(类型为ET_REL)。没有操作系统会“运行”此类文件 - 支持执行ELF文件的操作系统需要完全链接的可执行文件(类型为ET_EXECET_DYN)。

其次,即使您设法链接ET_EXEC,您仍然需要您的操作系统知道如何加载并开始执行此类文件。 Linux和Solaris内核确实知道这一点,AIX和Windows内核