一个因全局变量引起的DLL崩溃引发的血案

参考我发的帖子:

http://bbs.csdn.net/topics/390737064?page=1#post-397000946


现象是exe程序在加载dll的时候崩溃了,莫名其妙的崩溃了。换其它DLL没问题,我又写了个DEMO程序使用这个DLL也是一个现象,用OD加载EXE,用ODDLLLOADER加载DLL,结果也是一样的崩。。搞的我也差点崩溃了。。

一个因全局变量引起的DLL崩溃引发的血案_第1张图片

加载上微软符号表后发现:

一个因全局变量引起的DLL崩溃引发的血案_第2张图片

然后自然而然的一个一个内核函数去查找去找可能,百度谷歌都翻了,看雪论坛也看了。

法个克,这个问题找了很长时间。我一直认为是项目配置错误导致的问题,跟代码无关。

最后发现是由于DLL中一个全局变量的构造函数中,给其成员变量分配的内存过大了,导致程序崩溃了。。分配的内存也不过是4096*1000这么个大小,导致栈溢出了。


在CU找到了一个同样问题的帖子。。MARK下。

http://bbs.chinaunix.net/thread-3732299-1-1.html


你可能感兴趣的:(windows编程)