简体   繁体   English

底部4GB满时FileDialog崩溃

[英]FileDialog crash when bottom 4GB full

in order to catch pointer truncation bugs in 64 bits, I added the code snippet mentioned here that reserves the bottom 4GB of memory so allocs are above 32 bits. 为了捕获64位的指针截断错误,我添加了此处提到的代码段,该代码段保留了底部4GB的内存,因此分配高于32位。 In a MFC x64 test app, I call the reservation function first thing in InitInstance(). 在MFC x64测试应用程序中,我首先在InitInstance()中调用保留函数。 I then added a button that simply does: 然后,我添加了一个简单地执行以下操作的按钮:

CFileDialog dlg(TRUE);
dlg.DoModal();

Calling DoModal eventually crashes somewhere with a callstack in "no mans land": 最终,在没有人登陆的情况下,调用DoModal会在某个调用堆栈中崩溃:

>   000000018000163b()  
    0000000100000024()  
    0000000000000001()  

This is not MFC specific since I get the same behavior with a .NET FileDialog. 这不是特定于MFC的,因为使用.NET FileDialog会得到相同的行为。 I think it's something out of my hands since the actual fileDialog shows up briefly and then crashes. 我认为这是我无法控制的,因为实际的fileDialog会短暂显示然后崩溃。 Feels like a shell extension or something but I can't get where it's coming from since the call stack isn't helping - but I want to find out if there's anything I can do! 感觉像是shell扩展之类的东西,但是由于调用栈没有帮助,所以我无法知道它的来源-但我想知道我是否可以做些什么!

If I remove the special reservation function I don't get the crashes anymore. 如果删除特殊保留功能,我将不会再崩溃。

Puzzled! 困惑!

I am unable to repro this crash. 我无法重现此崩溃。 I created a 64-bit project, added the 4 GB reservation, and opened a file dialog within it. 我创建了一个64位项目,添加了4 GB的预留空间,并在其中打开了一个文件对话框。 No crash. 没有崩溃。

Either my repro doesn't match yours, or there is something on your system that is different. 我的repro与您的不匹配,或者您的系统上有不同的东西。 You should post your project so that we can remove one of the variables. 您应该发布您的项目,以便我们可以删除其中一个变量。

Unfortunately I don't remember what a TppWorkerThread is. 不幸的是,我不记得TppWorkerThread是什么。

Post your project -- all source files, resource files, .vcxproj files, and .sln files. 发布您的项目-所有源文件,资源文件,.vcxproj文件和.sln文件。 Then we can investigate. 然后我们可以进行调查。

为了解决此问题,我们发现由360 sdk安装的shell扩展会导致此问题(xeshlext.dll)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM