天道酬勤,学无止境

Python程序因为ntdll.dll和QtGui4.dll崩溃(Python program crashes because of ntdll.dll and QtGui4.dll)

问题

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

我的 GUI 中有十二个 matplotlib 动画(GUI 是用 PyQt 设计的)。 每个 matplotlib 动画都连接到一个 TCP 线程,通过该链接接收浮点数。 收到浮点数后,matplotlib 动画会向图中添加一个新点。 万岁,我们有现场情节!

我的软件可以平稳运行几秒钟(有时长达半分钟)。 然后灾难来袭。 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.dll搜索QtGui4.dllntdll.dll 。 我找到了几个程序来修复我电脑上的 dll,但诺顿防病毒软件告诉我我不能信任它们。 所以我现在别无选择,最后求助于 StackOverflow。

在此先感谢您的帮助。

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

回答1

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

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

PyQT 线程的最简单方法

对不起给您带来不便。

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Python program crashes because of ntdll.dll and QtGui4.dll
    I have designed a Python software to collect data from my microcontroller and make live plots: I have twelve matplotlib animations in my GUI (the GUI is designed with PyQt). Each matplotlib animation is connected to one TCP thread, receiving floating point numbers through that link. Upon receiving a floating point number, the matplotlib animation adds a new point to the graph. And huray, we got live plots! My software runs smoothly for a couple of seconds (sometimes up to half a minute). And then disaster strikes. Windows mentions "Python has stopped working". I don't even get an exception
  • Java 随机崩溃(可能的罪魁祸首:ntdll.dll?)(Java Randomly Crashing (Possible Culprite: ntdll.dll?))
    问题 我有一个用 Java 编写的程序,并使用 Windows 任务计划程序设置为每 5 分钟运行一次。 它执行“C:\Program Files\Java\jre7\bin\javaw.exe”并传递 jar 文件和所有命令行参数。 在大多数情况下,这运行得非常好,但时不时地,我会回到我的计算机并看到一个弹出窗口,说“Java(TM) Platform SE 二进制文件已停止工作”。 所以,起初,我认为这与我的代码有关,并添加了许多附加到文本文件的调试语句。 当它崩溃时,我检查了文本文件,其中没有列出未完成的运行。 然后我在我的主要方法中添加了一个打印语句: public static void main (String[] args) { System.out.println ("Main Method Called"); new Runner (args); } 然后我不断地从命令行运行 Java 程序,直到它崩溃,我注意到一些有趣的事情。 在崩溃时,它从未打印过“调用的主要方法”。 现在,我觉得这很有趣,因为这告诉我崩溃的不是我的 Java 程序,而是 Java 本身。 然后我继续向我的命令行添加详细的打印语句: java -verbose:class -verbose:gc -verbose:jni -jar ... 从那里,我继续这个过程,直到程序再次失败。 当它失败时
  • 安装IE9后,Visual Studio 2012崩溃(错误模块ntdll.dll)(Visual Studio 2012 Crashes after installing IE9 (Faulting Module ntdll.dll))
    问题 好的.... 自从Visual Studio RTM在我的工作计算机上发布以来,我一直在运行它。 上周五,我安装了IE并将其更新至版本9,以测试JavaScript问题。 安装IE9并重新启动计算机后,Visual Studio 2012不再起作用,它将打开并显示开始页面约一秒钟,然后崩溃。 我尝试了以下失败: 恢复为IE8-仍然崩溃运行devenv / SafeMode-仍然崩溃运行devenv / ResetSettings-仍然崩溃修复VS2012-仍然崩溃完全卸载VS2012并重新安装-仍然崩溃完全卸载VS2012,删除所有VS2012文件夹和注册表项,然后重新安装-仍然崩溃 (重新)更新为IE9,卸载vs2012并重新安装-仍然崩溃 (每一个细致的步骤后无数重新启动) PS我无法运行“系统还原”,因为该操作“已被您的管理员禁用”,如果我可以使用的话,该操作将在上述步骤4之前进行... 当我运行devenv(是否使用安全模式)时,在应用程序事件日志中得到以下信息: Faulting application name: devenv.exe, version: 11.0.50727.1, time stamp: 0x5011ecaa Faulting module name: ntdll.dll, version: 6.1.7601.17725, time stamp
  • 为什么 JVM 会因为 NTDLL.DLL 而在 Windows Server 2012 上随机崩溃?(Why does JVM randomly crashes on Windows Server 2012 due to NTDLL.DLL?)
    问题 我的生产服务器偶尔会崩溃 java.exe 服务,因此 myApplication Server Glassfish 4.1。 它随机发生,到目前为止我找不到解释这种行为的理由。 检查 Win Server 2012 事件查看器,表明应用程序错误是由于与 NTDLL.DLL 冲突。 在下面,我发布了这些崩溃之一后收集的转储: Version=1 EventType=APPCRASH EventTime=130971776990222439a ReportType=2 Consent=1 ReportIdentifier=60c166c2-ba16-11e5-8100-22000afdaf63 IntegratorReportIdentifier=60c166c1-ba16-11e5-8100-a22000afdaf63 NsAppName=java.exe Response.type=4 Sig[0].Name=Application Name Sig[0].Value=java.exe Sig[1].Name=Application Version Sig[1].Value=8.0.650.17 Sig[2].Name=Application Timestamp Sig[2].Value=56145db1 Sig[3].Name=Fault Module Name Sig
  • Visual Studio 2010 反复崩溃(Visual Studio 2010 crashes repeatedly)
    问题 我已经运行 Visual Studio 2010(官方版本)有一段时间了。 最近,在我 8 小时的工作日内,VS 会崩溃 10 多次。 在 VS2008 中,处理大型 Xaml 文件时崩溃很常见,虽然我在 VS2010 中遇到过一些崩溃,但在调试、启动调试器、停止调试器和编辑代码时的其他随机时间时会发生崩溃。 我查看了问题报告,我发现最常出现的问题是: 描述错误的应用程序路径:C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe 问题签名问题事件名称:APPCRASH 应用程序名称:devenv.exe 应用版本:10.0.30319.1 应用时间戳:4ba1fab3 故障模块名称:ntdll.dll 故障模块版本:6.1.7600.16385 故障模块时间戳:4a5bdb3b 异常代码:c0000005 异常偏移:0002e23e 我正在运行 Windows 7 (x64)。 希望有人遇到过这个问题并找到了解决方案。 我打算重新安装VS2010。 希望这能解决问题。 回答1 您是否认为您安装了任何可能导致频繁崩溃的额外扩展? 你可以试试 Devenv.exe /SafeMode 以安全模式启动。 你也可以试试 Devenv.exe /Log 这将记录所有活动。
  • 程序仅在发布版本时崩溃-如何调试?(Program only crashes as release build — how to debug?)
    问题 我这里遇到的是“薛定inger之猫”类型的问题-我的程序(实际上是我程序的测试套件,但仍然是一个程序)崩溃了,但仅当在发布模式下构建时才发生崩溃,并且仅当从命令行启动时才崩溃。 通过穴居人调试(即到处都是讨厌的printf()消息),我确定了代码崩溃的测试方法,但是不幸的是,实际的崩溃似乎发生在某些析构函数中,因为我看到的最后一条跟踪消息在其他执行干净的析构函数。 当我尝试在Visual Studio中运行该程序时,它不会崩溃。 从WinDbg.exe启动时也是如此。 仅在从命令行启动时才发生崩溃。 顺便说一句,这是在Windows Vista下发生的,不幸的是,我现在无法使用XP计算机进行测试。 如果我可以让Windows打印出堆栈跟踪信息,或者可以像终止程序一样干净地终止程序,那将是非常不错的选择。 是否有人对我如何在此处获取一些更有意义的信息以及希望修复此错误有任何建议? 编辑:问题确实是由越界数组引起的,我将在本文中对此进行更多描述。 感谢大家对发现此问题的帮助! 回答1 在我见过或听说过的100%的情况下,C或C ++程序在调试器中运行良好,但在外部运行时失败,其原因一直是在函数局部数组的末尾写入。 (调试器将更多内容放到了堆栈上,因此您不太可能覆盖重要的内容。) 回答2 当我遇到这样的问题之前,通常是由于变量初始化引起的。 在调试模式下,变量和指针会自动初始化为零
  • 我们的应用程序崩溃 - 如何找到崩溃的原因?(Our application crashes - How to find the cause of the crash?)
    问题 发生的事情是我们有一个联系人同步应用程序。 在按下启动应用程序同步主要逻辑的按钮后不久,应用程序停止工作,Windows(在本例中为 7)表示我们的应用程序“已停止工作”,之后唯一的可能性是通过按钮关闭应用程序标题为“关闭应用程序”。 一件奇怪的事情是,在我的开发机器上,应用程序运行良好。 它不会崩溃,也不会抛出任何错误。 但是,当打包为安装程序并安装在其他机器上时,它确实会停止如上所述的工作。 请让我知道我可以使用哪些应用程序来更好地调试它,如何找到有关此错误的更多信息,触发它的原因,如何解决它等。 提前致谢。 稍后编辑 这是在事件查看器日志中打印出来的内容: Faulting application name: ourappname.exe, version: 1.2.9.0, time stamp: 0x4f3926c8 Faulting module name: ntdll.dll, version: 6.1.7600.16915, time stamp: 0x4ec49caf Exception code: 0xc0000374 Fault offset: 0x000c33bb Faulting process id: 0xecc Faulting application start time: 0x01ccea61773d12e0 Faulting
  • 使用 symstore.exe 无法在 Windbg 或 Visual Studio 中加载用于小型转储的符号(Using symstore.exe cannot load symbols for minidump in Windbg or Visual Studio)
    问题 为了跟踪仅在 Windows 8 用户计算机上发生的 Qt 中的崩溃,我设置了一个本地符号服务器以用于调试崩溃转储。 首先,我使用以下标志集进行了完整构建: QMAKE_CFLAGS_RELEASE += -Zi QMAKE_CXXFLAGS_RELEASE += -Zi QMAKE_LFLAGS_RELEASE += /DEBUG /OPT:REF 并使用 Windows Installer 和 VS 部署项目构建了一个安装程序。 然后我运行了以下 symstore.exe 命令: C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64>symstore.exe add /r /f C:\builddir\*.* /s "C:\Users\Sam\symbols" /t "Application" /v "rev xxxx" /c "test add" 这在C:\Users\Sam\symbols创建了适当的 dll、exe 和 pdb 文件夹。 然后我在用户机器上安装并通过 Process Explorer 生成了一个 minidump 文件。 我尝试将转储加载到 Visual Studio 并将C:\Users\Sam\symbols到符号文件位置,但找不到与我的二进制文件匹配的符号。 然后我尝试将它加载到
  • iTunes 共享库中 PyObject_Call() 的分段错误(Segmentation-fault with PyObject_Call() in shared library for iTunes)
    问题 我正在试验 iTunes SDK 和 Cython。 DLL 入口点似乎有效,但使用任何“真正的 Python”都会导致 iTunes 崩溃。 以下代码编译良好,iTunes 成功加载了 plugin-dll。 cimport libc.stdio as stdio cdef extern from "iTunesAPI/iTunesAPI.h": ctypedef int OSType ctypedef int OSStatus ctypedef struct PluginMessageInfo: pass int unimpErr cdef public OSStatus iTunesPluginMain( OSType message, PluginMessageInfo* messageInfo, void* refCon ): cdef stdio.FILE* fl = stdio.fopen('C:/itunes_cyplugin_feedback.txt', 'wb') return unimpErr 但是添加 Python 表达式会导致 iTunes 崩溃,例如: # ... cdef public OSStatus iTunesPluginMain( OSType message, PluginMessageInfo* messageInfo, void*
  • 为什么 ntdll.dll 会导致我的 C++ 可执行文件崩溃?(Why is ntdll.dll crashing my c++ executable?)
    问题 我无法让 Visual C++ 可执行文件工作,应用程序崩溃,这是我在事件查看器中看到的。 Faulting application name: submit.exe, version: 0.0.0.0, time stamp: 0x50a3cce7 Faulting module name: ntdll.dll, version: 6.1.7601.17514, time stamp: 0x4ce7ba58 Exception code: 0xc0000374 Fault offset: 0x000ce653 Faulting process id: 0x8fc Faulting application start time: 0x01cdc2a3da4f2997 Faulting application path: c:\submit.exe Faulting module path: C:\Windows\SysWOW64\ntdll.dll Report Id: 1813823a-2e97-11e2-8675-000c29229191 在旧版本的 Visual Studio 中编译的可执行文件可以工作,但我在使用 2008 或 2010 等较新的 VS 编译的可执行文件时出现错误。请指教 回答1 解决此类问题可能是一个真正的挑战……尤其是当您不熟悉代码库时。
  • 在符号服务器中没有 Windows DLL 的确切版本的情况下进行事后故障转储调试(Post-mortem crash-dump debugging without having the exact version of a Windows DLL in the Symbol Server)
    问题 在我的应用程序中,每当我的应用程序崩溃时,我都会使用 MiniDumpWriteDump 函数(请参阅 dbghelp.dll)来编写崩溃转储文件。 我还使用符号服务器来存储我所有的可执行文件和 pdb 文件,这样每当客户向我发送故障转储文件时,调试器都会自动选择正确版本的可执行文件和调试信息。 我还将 Windows DLL(ntdll.dll、kernel32.dll、...)及其调试信息存储在符号服务器中(使用 SymChk)。 调试信息是从 Microsoft 的公共符号服务器获取的。 大多数情况下,这很完美,除非: 客户在其中一个 Windows DLL 中崩溃客户使用我没有放入符号服务器的 DLL 这是因为将每个 Windows DLL 的每种风格都存储在 Symbol Server 中是完全不可能的(尤其是每周补丁)。 因此,如果客户崩溃,例如 NTDLL.DLL 的 5.2.123.456 版本,而我没有将这个确切版本的 DLL 放入我的 Symbol Server,那么我就被卡住了。 甚至微软的公共符号服务器也无济于事,因为它只提供调试信息,而不是 DLL 本身。 我目前的解决方案是向客户询问他的 DLL,但这并不总是那么容易。 因此,我正在寻找更好的解决方案。 有没有办法让调试器显示正确的调用堆栈,或加载特定 DLL 的调试信息,即使您没有 DLL
  • 在 Visual Studio 中调试转储文件(Debugging dump files in Visual Studio)
    问题 我使用的是 Visual Studio 2010 专业版和 Windows Vista。 首先,我有这个代码。 如您所见,它会使程序崩溃! using System; namespace Crash { class Program { static void Main(string[] args) { string a = null; if (a.Length == 12) { // ^^ Crash } } } } 程序将在 if 语句上崩溃。 现在,我想知道它在那个 if 语句上崩溃了。 如果我从 Visual Studio“启动而不调试”,则 Crash.exe 会崩溃。 它使用 1,356kb 的内存。 我得到了关闭程序/调试的 Vista 选项。 如果我选择调试,我可以打开一个新的 Visual Studio 实例,它会指向 if 语句中的 NullReferenceException。 这很好。 现在让我假设它在另一台计算机上崩溃,我让他们通过任务管理器给我一个转储文件。 它是 54,567kb。 怎么这么大! 它是广阔的! 反正我对那个不太感兴趣(稍微) 如果我用 Windbg 打开那个转储,我的未经训练的眼睛几乎没有用: Microsoft (R) Windows Debugger Version 6.12.0002.633 X86 Copyright (c)
  • Segmentation-fault with PyObject_Call() in shared library for iTunes
    I'm experimenting with the iTunes SDK and Cython. The DLL entry-point seems to work, but using any "real Python" causes iTunes to crash. The following code compiles fine and the plugin-dll is loaded successfully by iTunes. cimport libc.stdio as stdio cdef extern from "iTunesAPI/iTunesAPI.h": ctypedef int OSType ctypedef int OSStatus ctypedef struct PluginMessageInfo: pass int unimpErr cdef public OSStatus iTunesPluginMain( OSType message, PluginMessageInfo* messageInfo, void* refCon ): cdef stdio.FILE* fl = stdio.fopen('C:/itunes_cyplugin_feedback.txt', 'wb') return unimpErr But adding a
  • 服务和 Web 引用使 Visual Studio 崩溃(Service and Web Reference crashes Visual Studio)
    问题 当我将鼠标移到这两个中的任何一个上或右键单击其中任何一个时,Visual Studio 崩溃并在事件日志中显示以下消息: “错误”:0x01cb07b7f1bd036d 程序路径:C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe 模块路径:C:\Windows\SysWOW64\ntdll.dll 报告 ID:46c92fc7-73ab-11df -b110-002481038dc3 不幸的是,它在 Visual Studio 2010 和 Visual Studio 2008 中是一样的。我尝试修复安装,将所有设置重置为默认值并卸载我拥有的所有插件,但没有任何明显的结果。 有没有人知道发生了什么? 英语的突出部分: 错误的应用程序 devenv.exe,版本 9.0.30729.1,时间戳 0x488f2b50,错误的模块 ntdll.dll,版本 6.1.7600.16385,时间戳 0x4a5bdb3b,异常代码 0xc0000374,错误偏移量 0x000370 0x000000000000000000000000000000000000000000000000000 回答1 您是否安装了 ReSharper? 错误代码 0xC0000374 表示堆损坏
  • 导入scipy.stats后,Ctrl-C会使Python崩溃(Ctrl-C crashes Python after importing scipy.stats)
    问题 我在Win7 64位上运行64位Python 2.7.3。 通过执行以下操作,我可以可靠地使Python解释器崩溃: >>> from scipy import stats >>> import time >>> time.sleep(3) 并在睡眠期间按Control-C。 没有引发KeyboardInterrupt; 解释器崩溃。 打印以下内容: forrtl: error (200): program aborting due to control-C event Image PC Routine Line Source libifcoremd.dll 00000000045031F8 Unknown Unknown Unknown libifcoremd.dll 00000000044FC789 Unknown Unknown Unknown libifcoremd.dll 00000000044E8583 Unknown Unknown Unknown libifcoremd.dll 000000000445725D Unknown Unknown Unknown libifcoremd.dll 00000000044672A6 Unknown Unknown Unknown kernel32.dll 0000000077B74AF3 Unknown Unknown
  • Qt 新的 Gui 应用程序在启动时崩溃,在 QtCore4.dll 处出错(Qt fresh Gui application crashes on startup, faulting at QtCore4.dll)
    问题 我对用 C++ 开发 GUI aps 比较陌生,在开始时我遇到了一些问题。 所以这是故事: 我用 MinGW 4.7.2 下载并编译了 QT 库 (v4.8.3) 并配置了 qtcreator 以使用它。 我可以编译和运行一个普通的非 qt 控制台应用程序就好了。 但是当我尝试创建一个新的 GUI 应用程序时,Windows 7 说创建的 exe“已停止工作......”详细信息: Fault Module Name: QtCore4.dll Fault Module Version: 4.7.0.0 现在困扰我的是它说版本是 4.7,但我真的打算使用 4.8.3。 现在,当我通过事件查看器进一步调查时,我注意到: Faulting module path: C:\Windows\system32\QtCore4.dll 但是我的系统上不存在这样的文件! 此外,我发现当我将 QtCore4.dll 和 QtGui4.dll(均为 v4.8.3)复制到包含 exe 的“release”文件夹时,我的应用程序可以正常工作。 所以我真的很想知道神秘的旧 dll 是如何出现并把事情搞砸的...... 回答1 您正在看到正在运行的 Windows 7 32 位兼容层。 system32中的文件实际上是各种系统文件的 64 位版本。 您应该在C:\Windows
  • 无法导入PyQt4.QtGui(Cannot import PyQt4.QtGui)
    问题 我安装了可正常运行的python 2.6,并且刚刚安装了为python 2.6构建的PyQt4(可从http://www.riverbankcomputing.co.uk/software/pyqt/download下载)。 当我尝试导入PyQt4.QtGui时,出现以下错误: ImportError: DLL load failed: The specified procedure could not be found. 我使用的是Windows 2k8 64位,但是我的Python安装是32位。 回答1 将包含Qt的应用程序和DLL的PyQt4目录添加到PATH环境变量中。 在PowerShell中,只要您不更改任何安装路径,就可以 $env:path += ';C:\Python26\Lib\site-packages\PyQt4\bin' 回答2 我在另一个对我有用的论坛上找到了解决方案。 我需要将QtGui4.dll和QtCore4.dll复制到... \ Python2.7.1 \ Lib \ site-packages \ PyQt4目录中。 注意,我将原始文件保留在bin目录中。 回答3 我已经从.whl文件(从非官方的Windows二进制文件)安装了PyQt4,并遇到了相同的错误。 我做了回答的建议:检查是否安装了正确的版本
  • 当c#程序崩溃时怎么知道为什么?(when c# program crash how to know why?)
    问题 我的程序经常因某种原因崩溃。 在这种情况下,我确实看到带有“关闭”按钮的 Windows 消息。 每次发生这样的事情,我真的很想知道发生了什么。 感谢社区,我已经知道如何“处理”某些情况,我在程序的开头添加了这样的代码: static void Main(string[] args) { AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; TaskScheduler.UnobservedTaskException += (object sender, UnobservedTaskExceptionEventArgs excArgs) => { Log.Push(LogItemType.Error, "Exception occured. Task terminated! + " + excArgs.Exception); excArgs.SetObserved(); }; ..... static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { Console.WriteLine("Error: CurrentDomain
  • 在 Windows 上第二次使用时 libxml2 崩溃(libxml2 crash on second use on Windows)
    问题 我一直在使用 libxml2 推送解析 (SAX) 来解析传入的 XML 流,这第一次运行良好,但每次都在第二次尝试时崩溃,我的代码如下所示: xmlSAXHandler saxHandler; memset(&saxHandler, 0, sizeof(m_SaxHandler)); xmlSAXVersion(&saxHandler, 2); saxHandler.initialized = XML_SAX2_MAGIC; // so we do this to force parsing as SAX2. saxHandler.startElementNs = &startElementNs; saxHandler.endElementNs = &endElementNs; saxHandler.warning = &warning; saxHandler.error = &error; saxHandler.characters = &characters; xmlParserCtxtPtr pSaxCtx = xmlCreatePushParserCtxt(&m_SaxHandler, this, 0, 0, 0); 然后我使用xmlParseChunk()输入 XML 流并使用回调来处理数据,一旦解析完成,我调用xmlFreeParserCtxt(pSaxCtx
  • 在 Windows 10 上打开解决方案时,Visual Studio 2013 崩溃(Visual Studio 2013 crashing when opening solution on Windows 10)
    问题 昨天我将我的 Windows 10 机器从 Insider Preview 升级到原始版本。 从那一刻起,当我尝试在 Visual Studio 2013 中打开解决方案(即使尝试创建新解决方案)时,程序崩溃并停止。 在事件查看器中,我发现崩溃是由于 ntdll.dll 中的堆损坏造成的,但这对我没有帮助。 该程序在安全模式下平稳运行,但在不处于此模式时,每次使用每种解决方案时都会崩溃。 发生这种情况时,我认为这应该是 Windows 10 和 VS2013 的常见问题,但我几乎一天都在网上找不到任何相关内容。 有没有其他人遇到过这样的问题或类似的问题? 任何建议将不胜感激。 注意:我使用 VS2013 和 Windows 10 Insider 预览版将近一个月,没有遇到任何问题。 这就是为什么我认为问题与 Windows 10 的正式发布有关。 回答1 您可能想尝试卸载 VS2013,然后在您的机器上重新安装它,这几乎适用于我在升级操作系统时遇到的所有错误。 另外,请确保您安装的是今年 7 月 20 日发布的 VS2013 Update 5,而不是旧的 VS2013 Update 4(如果您使用的是旧安装程序,则可能更早),因为这可能会解决兼容性问题,这很可能因为微软会让最新版本的软件与其最新的操作系统兼容。 更好的是,请尝试安装 Visual Studio 2015