2016-09-04 28 views
4

我最近才开始发现这个问题,并且我不知道什么时候开始发生/什么原因导致它。由于KERNELBASE.dll错误导致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 NOTE:无论我在main.cpp中有什么,我仍会得到上述的GDB错误。

另外值得注意的是:这是在a.exe的可执行文件的其他文件:

我以往需要cygboost_filesystem.dll得到boost_filesystem工作,我需要libgcc_s_sjlj-1.dlllibstdc++6,因为它不会没有他们的工作。

+0

如果删除函数体只是返回0会怎样? – 4pie0

+0

@where_is_tftp没有骰子 - 它仍然给出相同的结果。 – Zanaran

+0

,如果删除了boost include和namespace definition,并且只留下#include int main() { return 0; } – 4pie0

回答

相关问题