由于KERNELBASE.dll错误导致GDB无法运行程序

时间:2016-09-04 20:29:57

标签: c++ gcc gdb

我最近才刚开始遇到这个问题,我不知道它什么时候开始出现/是什么原因造成的。

我在这里有这个简单的测试程序:

#include <iostream>

int main()
{
    return 0;
}

但是当我尝试正常运行时,会创建一个stackdump。

Stack trace:
Frame     Function  Args
00CBC498  6101D93A (00000198, 0000EA60, 000000A4, 00CBC508)
00CBC5C8  610E2F3F (00000000, 60FC04E8, 00CBC658, 7794ABEE)

但是,当我尝试在GDB中运行它时,它显然无法这样做。

gdb: unknown target exception 0x406d1388 at 0x778edae8

Program received signal ?, Unknown signal.
0x778edae8 in RaiseException ()
   from /cygdrive/c/WINDOWS/SYSTEM32/KERNELBASE.dll
(gdb) n
Single stepping until exit from function RaiseException,
which has no line number information.
[Thread 14880.0x11ac exited with code 1080890248]
[Thread 14880.0x3fd8 exited with code 1080890248]
[Thread 14880.0x3b24 exited with code 1080890248]
[Inferior 1 (process 14880) exited with code 010033211610]

这就是我的编译器的设置方式:

g++ -g -std=c++1y -Wall -c main.cpp -o main.o main.cpp compiled... 
g++ -g -std=c++1y -Wall -o a main.o Successfully compiled!

知道我在这里做错了吗? 我正在使用的平台是Windows,我正在使用Cygwin作为我的开发环境。

OF注意:无论我在main.cpp中有什么,我仍然会得到上述的GDB错误。

另请注意:以下是a.exe可执行文件中的其他文件:

我以前需要cygboost_filesystem.dll才能让boost_filesystem正常工作,我需要libgcc_s_sjlj-1.dlllibstdc++6因为没有它们就行不通。

1 个答案:

答案 0 :(得分:1)

将gdb更新为7.11.1-1实验发布版本。

Details of GDB bug