我有一个64位NASM exe作为控制台应用程序编写。我想在Cygwin下的Emacs中使用gdb调试它。我使用以下命令字符串编译和汇编:
nasm -f elf64 Prime_Number_EXE.asm
gcc -g -l cygwin Prime_Number_EXE.o -o Prime_Number_EXE.exe
编译和链接后,我转到cygwin并启动emacs。我打开nasm源文件。然后我启动gdb并切换到gdb-many-windows模式。但源窗口中显示的源文件不是我的nasm代码;它是Cygwin插入的特殊C程序
/* libcmain.c
This file is part of Cygwin.
/* Allow apps which don't have a main to work, as long as they define WinMain */
所以它没有显示nasm源代码,当我单步执行它时,它不会停止在nasm源代码中的任何断点处。
我该如何解决这个问题?
感谢您的帮助。
答案 0 :(得分:0)
elf64不是COFF的windows / cygwin程序的结构, 你无法在Windows上运行elf64。
您正在查看添加到所有程序中的STUB gcc。 对于你想要做的事情,你需要一个Unix / Linux系统或 改为COFF结构。