QDomDocument SetContent() crash
QDomDocument SetContent() crash
我正在将QT4.8与32位Visual Studio 2010一起使用。我正在尝试更改函数中XML文件的某些内容。功能开始时类似
QFile* myXmlFile;
QDomDocument myDom;
...
myDom.setContent(myXmlFile);
当xml文件小于24Mb时,函数工作得很好。然而,当我的文件比这个大时,程序会在上面的最后一行崩溃。我发现了一个类似的问题,但它说错误发生在200Mb之后,问题似乎有所不同。
我有16 Gb的内存,你几乎看不到内存使用的变化,所以这可能不是因为内存不足。
当我使用try-catch块来查看问题时,它表示存在错误的分配异常。QDomDocument似乎无法分配超过24 MB的内存,尽管计算机中有更多的可用内存。我阅读了QDomDocument的Qt文档,但没有发现任何线索。
有没有办法让程序或QDomDocument对象使用更多内存,或者你认为这是一个不同的问题?
如果XML文件在磁盘上是24MB,这并不意味着分配的RAM将是24MB——可能会更多。无论如何,Windows EXE文件可能有最大HEAP限制,可以从Visual Studio中增加,请参阅链接。。
我错了Marco解决问题的建议。尽管在某些情况下增加堆可能会有所帮助,但当你有太多的小节点时,QDomDocument可能会变得大到2GB,这是它的极限。我想最好的方法是使用XmlStream读写器。
相关文章:
- clCreateFromGLBuffer crash
- Protobuf ShortDebugString() crash
- Crash in boost::archive::text_iarchive in_archive {is} boost
- OpenCV Native Android cvtColor crash
- 通过调用 CreateRemoteThread 来弹出 dll:crash
- 获取stacktrace for Crash,而无需在调试器中运行该应用程序
- C++/Qt memcpy crash with QSharedMemory
- SDL_GetRendererInfo crash
- Python Numpy 方法对应于 C++ Eigen make crash
- Tesseract 3.02.02 Crash JRE
- Emscripten crash with mappedGlobals.find(name) != mappedGlob
- 在C 中导入.CSV文件:crash
- Qt threadred QOpenGLWidget crash
- Crash on curl_easy_perform() when uploading a file on CURL i
- 我可以从Crash Signature(Windows Crash Report)获取源代码吗?
- WinAPI EM_STREAMOUT crash
- JVM-Crash 在 JNI 中调用 ReleaseStringUTFChars,仅在 Windows 7 上,Win
- DirectX GetSystemMetrics Crash
- glBindBuffer crash - 使用 glew 实现 VBO
- QDomDocument SetContent() crash