C++ 未执行代码的Google v8内存泄漏
我尝试使用Google V8库,但发现内存泄漏。 这些内存泄漏与以下非常小的代码一起出现:C++ 未执行代码的Google v8内存泄漏,c++,visual-studio-2008,memory-leaks,v8,C++,Visual Studio 2008,Memory Leaks,V8,我尝试使用Google V8库,但发现内存泄漏。 这些内存泄漏与以下非常小的代码一起出现: //I link with v8 in my project settings (Visual studio 2008 ) #include <v8.h> void test(){ // Never called v8::V8::Initialize(); } void main(){ exit (0); } //我在项目设置中链接v8(Visual studio 2008)
//I link with v8 in my project settings (Visual studio 2008 )
#include <v8.h>
void test(){ // Never called
v8::V8::Initialize();
}
void main(){
exit (0);
}
//我在项目设置中链接v8(Visual studio 2008)
#包括
void test(){//从未调用
v8::v8::Initialize();
}
void main(){
出口(0);
}
你有办法阻止内存泄漏吗
提前谢谢。好的,现在我知道内存泄漏是误报。 如果我在应用程序中使用dll,你有没有办法隐藏这些泄漏? (我的应用程序必须始终启用内存泄漏检测) 那么,如何从精确的dll中隐藏内存泄漏呢
感谢您的大力帮助您可以按中所述设置标志_CRTDBG_ALLOC_MEM_DF和_CRTDBG_LEAK_CHECK_DF和_crtsetdbg标志,并删除对_crtdumpmomeryleaks()的显式调用。一旦所有进程终止,将自动调用该标志 不幸的是,这并不能解决v8的问题(这就是我在这篇文章中所遇到的问题),但对于Qt应用程序,它确实解决了问题,我也在寻找完整的答案 出于某种原因,除了添加 _CRTSETDBG标志(_CRTDBG_ALLOC_MEM_DF|u CRTDBG_LEAK_CHECK_DF) 在main/WinMain的开始,我所做的只是打电话 v8::v8::Dispose()
在程序终止之前。您如何知道内存泄漏?大多数时候,问这个问题的人要么不知道内存泄漏是什么,要么说内存泄漏是错的。你是说
exit(0)
?@john:我知道我有内存泄漏,因为我激活了visual studio的内存泄漏检测功能。VS显示此消息检测到内存泄漏!马克·加西亚:是的,我错了。Sorry@Hannibal所以您使用了\u CrtDumpMemoryLeaks()代码>?不幸的是,这并不能准确地检测内存泄漏。请详细描述您是如何检测到此内存泄漏的。请阅读此链接,听起来它与您的情况有关。@john:是的,我使用\u CrtDumpMemoryLeaks()
为了检测内存泄漏,我遵循这一点,在我的cpp文件的顶部添加了这个#ifdef#u DEBUG#define new#endif