当我尝试使用Eclipse调试代码时会显示:
alt text http://img63.imageshack.us/img63/1679/eclipseerr.jpg
然后我尝试使用Notepad ++和命令行gcc
手动创建一个简单的Hello World程序。当我启动gdb调试器时,发生了这种情况:
(gdb)运行
启动程序: C:\ Documents and 设置\彼得\ Bureaublad / TEST.EXE 创建进程C:\ Documents时出错 和 设置\彼得\ Bureaublad / TEST.EXE, (错误193)。
二进制文件运行正常,但是一旦我尝试调试它就会返回错误193。我正在使用由MinGW GCC编译器处理的C代码。我尝试重新安装编译器和调试器(最新版本),但没有改变任何东西。它在过去一直有效,我不记得对与编译器相关的设置进行任何更改。
以下是Eclipse生成的错误日志示例。
!ENTRY org.eclipse.cdt.dsf.gdb 4 5012 2010-02-09 18:19:47.375!MESSAGE错误 在最终发射序列中!STACK 1 org.eclipse.core.runtime.CoreException: 无法执行MI命令: -exec-run来自调试器后端的错误消息:创建进程时出错 C:/ Documents and Settings / Pieter / Mijn documenten /我的 收存箱/ Unief / C / H12 / Opdr07 /调试/ CH12O07.exe, (错误193)。在 org.eclipse.cdt.dsf.concurrent.Sequence.abortExecution(Sequence.java:560) 在 org.eclipse.cdt.dsf.concurrent.Sequence.access $ 4(Sequence.java:552) 在 org.eclipse.cdt.dsf.concurrent.Sequence $ 2.handleErrorOrWarning(Sequence.java:424) 在 org.eclipse.cdt.dsf.concurrent.RequestMonitor.handleFailure(RequestMonitor.java:314) 在 org.eclipse.cdt.dsf.concurrent.RequestMonitor.handleCompleted(RequestMonitor.java:277) 在 org.eclipse.cdt.dsf.concurrent.RequestMonitor $ 2.run(RequestMonitor.java:239) 在 java.util.concurrent.Executors $ RunnableAdapter.call(未知 来源)at java.util.concurrent.FutureTask中$ Sync.innerRun(未知 来源)at java.util.concurrent.FutureTask.run(未知 来源)at java.util.concurrent.ScheduledThreadPoolExecutor中的$ ScheduledFutureTask.access $ 301(未知 来源)at java.util.concurrent.ScheduledThreadPoolExecutor中的$ ScheduledFutureTask.run(未知 来源)at java.util.concurrent.ThreadPoolExecutor中的$ Worker.runTask(未知 来源)at java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(未知 来源)at java.lang.Thread.run(未知来源) !SUBENTRY 1 org.eclipse.cdt.dsf.gdb 4 10004 2010-02-09 18:19:47.546!MESSAGE 无法执行MI命令: -exec-run来自调试器后端的错误消息:创建进程时出错 C:/ Documents and Settings / Pieter / Mijn documenten /我的 收存箱/ Unief / C / H12 / Opdr07 /调试/ CH12O07.exe, (错误193)。
答案 0 :(得分:6)
可能是你使用的是旧版本的gdb,doesn't support native MinGW debugging(因为你说你更新到最新版本),或者你是invoking the debugger incorrectly?换句话说,如果您的可执行文件名为helloworld.exe
,gdb helloworld
可能会给您错误,而gdb helloworld.exe
可能会有效。
编辑:进一步的谷歌搜索说尝试directory name without spaces可能有效(解决方案是针对Code :: Blocks,但尝试不会有害)。
答案 1 :(得分:3)
答案 2 :(得分:3)
您的共享库设置已打开(可能是因为您将项目从可执行文件切换到共享库,然后返回)并且仍然使用'-shared'选项调用gcc,但输出文件具有.exe延期。
中有一个名为“shared”的复选框Properties => C/C++ Build => Settings => Tool Settings => MinGW C Linker => Shared Library Settings.
确保未选中。我也有错误193,直到我把它关掉。
答案 3 :(得分:0)
This thread确实提到了:
ERROR_BAD_EXE_FORMAT
注意(作为“cygwin安装问题”的一个例子)如果安装在一个带有包含空格的路径的cygwin中,则存在gdb错误(请参阅this thread)
在Eclipse CDT之外重现问题时,您使用的是什么版本的gdb?
答案 4 :(得分:0)
你说:
(gdb)运行
启动程序:C:\ Documents and 设置\彼得\ Bureaublad / TEST.EXE 创建进程C:\ Documents时出错 和 设置\彼得\ Bureaublad / TEST.EXE, (错误193)。
它可能与可执行路径末尾的正斜率/反斜杠有关吗?也许部分Bureaublad/test.exe
在这里打算作为单个可执行文件,并且无法找到它?