Debugging EclipseGDB赢得';t调试Cygwin可执行文件
我在Windows7 PC上使用Cygwin创建了一个简单的Hello world可执行文件,并使用:gcc Hello.c-g构建它 我可以在可执行文件的命令行中使用gdb,没有问题 然后在Eclipse Kepler中,我使用以下设置创建了调试配置: -C/C++应用程序具有可执行文件的完整路径 -它与项目无关;项目框为空。工作区中没有任何项目。 -选择“禁用自动生成” -选择“启动时停止:主” -GDB调试器设置为C:\cygwin64\bin\GDB.exe -我将完整路径添加到包含hello.c的目录中,并将可执行文件添加到“源代码查找路径”中 我最初的问题是使用TI的CodeComposer Studio(它基于EclipseKepler)来调试一个单元测试可执行文件,该可执行文件是用shell中手工编写的makefile创建的。下载EclipseKepler并使用一个简单的HelloWorld程序可以将问题归结为基本问题。我在CCS或常规Eclipse中遇到了同样的问题 问题是,当我尝试运行此调试配置时,gdb跟踪控制台向我显示: 290997 2-gdb-set断点挂起 290999 2^完成 290999(gdb) 290999 3-gdb-set在上的拨叉上分离 2910003^完成 291000(gdb) 291000 4-enable-pretty-printing 291001 4^完成 291001(gdb) 291001 5-gdb-set python打印堆栈无 291002 5^完成 291002(gdb) 291002 6-gdb-set打印对象打开 291003 6^完成 291003(gdb) 291003 7-gdb-set打印七位字符串 291004 7^完成 291004(gdb) 291004 8-gdb-set主机字符集UTF-8 291005 8^完成 291005(gdb) 291005 9-gdb-set目标字符集WINDOWS-1252 291006 9^完成 291006(gdb) 291006 10 gdb集目标宽字符集UTF-16 291007 10^完成 291007(gdb) 291007 11source.gdbinit 291008&“source.gdbinit\n” 291008&“.gdbinit:没有这样的文件或目录。\n” 291008 11^错误,msg=“.gdbinit:没有这样的文件或目录。” 291009(gdb) 291009 12 gdb设置目标异步关闭 291010 12^完成 291010(gdb) 291010 13 gdb设置自动solib附加模块 2910113^完成 291011(gdb) 291016 14文件执行和符号--线程组i1 C:/intelligented/scratch/a.exe 291051 14^完成 291051(gdb) 291051 15 gdb显示——线程组i1语言 291052 15^完成,value=“自动” 291052(gdb) 291052 16 gdb集合--线程组i1语言c 291053 16^完成 291053(gdb) 291053 17数据求值表达式--螺纹组i1“sizeof(void*)” 291054 17^完成,value=“8” 291054(gdb) 291054 18 gdb集合--线程组i1语言自动 291055 18^完成 291055(gdb) 291055 19解释器执行——线程组i1控制台“show endian” 291056~“自动设置目标端号(当前为小端号)\n” 291056 19^完成 291056(gdb) 291057 20断开镶块--螺纹组i1-t-f主螺纹 291058 20^完成,bkpt= {number=“1”,type=“breakpoint”,disp=“del”,enabled=“y”,addr=“0x00000001004010dd”\ func=“main”,file=“hello.c”,fullname=“/cygdrive/c/intelligend/scratch/hello.c”,line=“5”,线程组\ s=[“i1”],times=“0”,original location=“main”} 291059(gdb) 291060 21 exec run--线程组i1 291075=线程组已启动,id=“i1”,pid=“10376” 291077 22列出线程组--可用 291077=线程已创建,id=“1”,组id=“i1” 291077~“[新线程10376.0x22c8]\n” 291077 21^正在运行 291077*正在运行,线程id=“全部” 291077(gdb) 291080=线程已退出,id=“1”,组id=“i1” 291080=线程组已退出,id=“i1” 291080 21^错误,msg=“启动期间程序退出,代码为0xc0000135。” 291080(gdb) 291080 22^错误,msg=“现在无法获取数据。” 291080(gdb) 291088 23 gdb出口 291090 23^出口 根据我读到的一些建议,在命令行中,我使用以下命令启动了gdb: gdb——解释器=mi a.exe 并输入了日志中显示的相同命令。当我使用命令21时,我会得到不同的输出: (gdb) 21执行运行--线程组i1 =线程组已启动,id=“i1”,pid=“7244” =已创建线程,id=“1”,组id=“i1” ~“[新线程7244.0xca4]\n” 21^跑步 *正在运行,线程id=“全部” (gdb) =已加载库,id=“/cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll”,目标名称=“/cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll”,主机名=“/cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll”,已加载符号=“0”,线程组=“i1” =加载的库,id=“/cygdrive/c/WINDOWS/system32/kernel32.dll”,目标名称=“/cygdrive/c/WINDOWS/system32/kernel32.dll”,主机名=“/cygdrive/c/WINDOWS/system32/kernel32.dll”,加载的符号=“0”,线程组=“i1” =加载的库,id=“/cygdrive/c/WINDOWS/system32/KERNELBASE.dll”,目标名称=“/cygdrive/c/WINDOWS/system32/KERNELBASE.dll”,主机名=“/cygdrive/c/WINDOWS/system32/KERNELBASE.dll”,加载的符号=“0”,线程组=“i1” =加载的库,id=“/cygdrive/c/WINDOWS/System32/SYSFER.DLL”,目标名称=“/cygdrive/c/WINDOWS/System32/SYSFER.DLL”,主机名=“/cygdrive/c/WINDOWS/System32/SYSFER.DLL”,加载的符号=“0”,线程组=“i1” =加载的库,id=“/usr/bin/cygwin1.dll”,目标名称=“/usr/bin/cygwin1.dll”,主机名=“/usr/bin/cygwin1.dll”,加载的符号=“0”,线程组=“i1” =加载的库,id=“/cygdrive/c/WINDOWS/system32/psapi.dll”,目标名称=“/cygdrive/c/WINDOWS/system32/psapi.dll”,主机名=“/cygdrive/c/WINDOWS/system32/psapi.dll”,加载的符号=“0”,线程组=“i1” =已创建线程,id=“2”,组id=“i1” ~“[新线程7244.0x1ba8]\n” *正在运行,线程id=“全部” =修改断点,bkpt={number=“1”,type=“breakpoint”,disp=“del”,enabled=“y”,addr=“0x00000001004010dd”,func=“main”,file=“hello.c”,fullname=“/cygDebugging EclipseGDB赢得';t调试Cygwin可执行文件,debugging,gdb,eclipse-cdt,Debugging,Gdb,Eclipse Cdt,我在Windows7 PC上使用Cygwin创建了一个简单的Hello world可执行文件,并使用:gcc Hello.c-g构建它 我可以在可执行文件的命令行中使用gdb,没有问题 然后在Eclipse Kepler中,我使用以下设置创建了调试配置: -C/C++应用程序具有可执行文件的完整路径 -它与项目无关;项目框为空。工作区中没有任何项目。 -选择“禁用自动生成” -选择“启动时停止:主” -GDB调试器设置为C:\cygwin64\bin\GDB.exe -我将完整路径添加到包含he