由于ntdll.dll和QtGui4.dll

时间:2016-05-15 19:37:20

标签: python qt dll pyqt4 ntdll

我设计了一个Python软件来从我的微控制器收集数据并制作实时图:

enter image description here

我的GUI中有12个matplotlib动画(GUI使用PyQt设计)。每个matplotlib动画都连接到一个TCP线程,通过该链接接收浮点数。收到浮点数后,matplotlib动画会向图形添加一个新点。和huray,我们得到了现场情节!

我的软件运行平稳几秒钟(有时长达半分钟)。然后是灾难来袭。 Windows提到“Python已停止工作”。我甚至没有在终端窗口中打印出异常报告(因为通常会发生我所有其他错误)。 Windows询问我是否要调试Python应用程序,并建议使用Visual Basic。在Visual Basic中,我收到以下错误报告:

Unhandled exception at 0x00007FFC596CE6FC (ntdll.dll) in
python.exe: 0xC0000374: A heap has been corrupted
(parameters: 0x00007FFC597222B0).

Unhandled exception at 0x00007FFC56071F28 in python.exe:
Microsoft C++ exception: std::bad_alloc at memory
location 0x0000003DBA30E8F0.

Exception thrown at 0x0000000000000000 in python.exe:
0xC0000005: Access violation executing location
0x0000000000000000.

我重新启动所有内容,然后再次尝试。灾难再次发生,我在Visual Basic中收到以下错误报告:

Unhandled exception at 0x00000000660E8D61 (QtGui4.dll) in python.exe:
0xC0000005: Access violation reading location 0x0000000000000020.

再一次,我重新开始进行另一次试验。灾难再次袭击我:

Unhandled exception at 0x00007FFC596CE6FC (ntdll.dll) in python.exe:
0xC0000374: A heap has been corrupted (parameters: 0x00007FFC597222B0).

不幸的是,我不清楚这些错误报告的含义。我用谷歌搜索了QtGui4.dllntdll.dll。我找到了几个程序来修复我的计算机上的dll,但诺顿防病毒软件告诉我,我不能相信它们。所以我现在没有选择,转而使用StackOverflow作为我的最后手段。

提前感谢您的帮助。

修改 :我已按照您的建议通过matplotlib.use("Qt4Agg")更改matplotlib后端,但它没有帮助。

1 个答案:

答案 0 :(得分:1)

我认为这个问题现在已经解决了。这是问题的根本原因。我以一种不安全的方式从另一个线程访问我的GUI(例如实时图,LED,......)。该应用程序运行良好一段时间(半分钟),但后来不可避免地崩溃。

我通过使用信号/插槽机制修复它。这就是(另一个StackOverflow问题的链接):

Simplest way for PyQT Threading

对于给您带来的不便,我很抱歉。