调试MinGW编译的代码时,gdb因错误193而失败

Pie*_*ter 4 c eclipse debugging gcc gdb

当我尝试使用Eclipse调试代码时会显示:

alt text http://img63.imageshack.us/img63/1679/eclipseerr.jpg

然后,我尝试使用Notepad ++和命令行手动创建一个简单的Hello World程序gcc.当我启动gdb调试器时,发生了这种情况:

(gdb)运行

启动程序:C:\ Documents and Settings\Pieter\Bureaublad/test.exe创建进程C:\ Documents and Settings\Pieter\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/My Dropbox/Unief/C/H12/Opdr07/Debug/CH12O07.exe,(错误193).org.eclipse.cdt.dsf.concurrent.Sequence.abortExecution(Sequence.java:560)位于org.eclipse.cdt的org.eclipse.cdt.dsf.concurrent.Sequence.access $ 4(Sequence.java:552).在org.eclipse.cdt.dsf.concurrent.RequestMonitor.handleCompleted的org.eclipse.cdt.dsf.concurrent.RequestMonitor.handleFailure(RequestMonitor.java:314)上的dsf.concurrent.Sequence $ 2.handleErrorOrWarning(Sequence.java:424) (RequestMonitor.java:277)org.eclipse.cdt.dsf.concurrent.RequestMonitor $ 2.run(RequestMonitor.java:239)at java.util.concurrent.Executors $ runnableAdapter.call(Unknown Source)at java.util. concurrent.FutureTask $ Sync.innerRun(Unknown Source)at java.util.concurrent.FutureTask.run(Unknown Source)at java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 301(Unknown Source)at java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run(未知来源)java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(未知来源)java.util.concurrent.ThreadPoolExecutor $ Worker.run (未知来源)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/My Dropbox/Unief/C/H12/Opdr07/Debug/CH12O07.exe,(错误193).

Alo*_*hal 6

可能是你使用旧版本的gdb,不支持本机MinGW调试(不太可能,因为你说你更新到最新版本),或者你正在调用调试器错误?换句话说,如果您的可执行文件被命名helloworld.exe,gdb helloworld可能会给您错误,但gdb helloworld.exe可能会有效.

编辑:进一步的谷歌搜索说,尝试没有空格目录名称可能会起作用(解决方案是针对Code :: Blocks,但尝试没有坏处).