Debugging GDB进程意外终止(退出代码3)

Debugging GDB进程意外终止(退出代码3),debugging,gdb,qt5.7,Debugging,Gdb,Qt5.7,我在Win7上用Qt5.7编码。我的应用程序运行正常。但是当我使用调试器时,一个错误对话框显示:GDB进程意外终止(退出代码3)。 调试器日志的最后一部分: >~"../../../../src/gdb-7.10.1/gdb/utils.c:1071: internal-error: virtual memory exhausted.\nA problem internal to GDB has been detected,\nfurther debugging may prove unr

我在Win7上用Qt5.7编码。我的应用程序运行正常。但是当我使用调试器时,一个错误对话框显示:GDB进程意外终止(退出代码3)。 调试器日志的最后一部分:

>~"../../../../src/gdb-7.10.1/gdb/utils.c:1071: internal-error: virtual memory exhausted.\nA problem internal to GDB has been detected,\nfurther debugging may prove unreliable.\nCreate a core file of GDB? "
>~"(y or n) [answered Y; input not from terminal]\n"
dUNEXPECTED GDB STDERR: 
dThis application has requested the Runtime to terminate it in an unusual way.
dPlease contact the application's support team for more information.

dGDB PROCESS FINISHED, status 0, exit code 3
dNOTE: ENGINE ILL ******
dFORWARDING STATE TO InferiorShutdownFailed
dState changed BY FORCE from InferiorStopOk(14) to InferiorShutdownFailed(17) [master]
dState changed from InferiorShutdownFailed(17) to EngineShutdownRequested(19) [master]
dQUEUE: SHUTDOWN ENGINE
dCALL: SHUTDOWN ENGINE
dPLAIN ADAPTER SHUTDOWN 19
dINITIATE GDBENGINE SHUTDOWN IN STATE 14, PROC: 0
dNOTE: ENGINE SHUTDOWN OK
dState changed from EngineShutdownRequested(19) to EngineShutdownOk(21) [master]
dState changed from EngineShutdownOk(21) to DebuggerFinished(22) [master]
dQUEUE: FINISH DEBUGGER
dNOTE: FINISH DEBUGGER
dHANDLE RUNCONTROL FINISHED
sDebugger finished.
在我的部分代码中,我使用了QVector:

       int logic_points_number=5;
       int logic_input_points[16][logic_points_number] ;
       QVector<double> x1_1(2*logic_points_number);
       QVector<double> y1_1(32*logic_points_number);

       x1_position=x1_last_position_logic;//start from last drawn point
       for(int logic_channel=0;logic_channel<16;logic_channel++){
          for (int i=0;i<logic_points_number ;i++){
          if (logic_channel==0)// set x1_1 only for first channel
            x1_1[2*i]= x1_position;
         y1_1[(2*logic_channel*logic_points_number)+(2*i)]=(16.2-logic_channel)+(0.6*logic_input_points[logic_channel][i]);
         if (logic_channel==0){// set x1_1 and x1_position only for first channel
            x1_position = x1_position + x1_step_logic;
            x1_1[(2*i)+1]= x1_position;
          }
         y1_1[(2*logic_channel*logic_points_number)+(2*i)+1]=(16.2-logic_channel)+(0.6*logic_input_points[logic_channel][i]);
         }
       }
       x1_last_position_logic= x1_position;//Set new last drawn point
}
int逻辑点数=5;
整数逻辑输入点[16][逻辑点数];
QVector x1_1(2*逻辑点编号);
QVector y1_1(32*逻辑点编号);
x1_位置=x1_最后位置逻辑//从最后一个绘制点开始

对于(int-logic_-channel=0;logic_-channel,在我的示例中,错误代码是“cdb进程意外终止(代码-805306181)”。将调试器从32位应用程序调试器更改为64位应用程序调试器修复了此问题


gdb收到错误
内部错误:虚拟内存耗尽。
。可能是整个系统的虚拟内存不足(但Windows会提前向您发出警告),或gdb正运行到中所述的某些进程限制。可能您有一个32位gdb。您从何处下载gdb?我不知道虚拟内存是什么?!但我从任务管理器检查了ram,它的最大值为45%。我的调试器是32位(MinGW_32bit-Debug)这是从Qt网站上用Qt pack下载的。通过安装mingw-w64解决的:[谢谢,我将测试此解决方案,但你知道为什么会发生这种情况吗?我已经有Qt 5,14,2 mingw 64位,但面临同样的问题。我的经验是只使用microsoft编译器。对于mingw,我想应该使用“GNU gdb X.Y For mingw M.M.Q 64位”(调试器列表中的第二行)