Hi all. I tried to research the topic first, so if it has already been posted please forgive me.
Running Linux on x64 and I can use V8 (which I built from source) just fine. However, when I run the hello_world code provided here<https://developers.google.com/v8/get_started> against valgrid I find memory leaks: > ==4240== Memcheck, a memory error detector > ==4240== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. > ==4240== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for copyright > info > ==4240== Command: ./hello_world > ==4240== > ==4240== Warning: set address range perms: large range [0x20ad2ae19000, > 0x20ad4ae19000) (noaccess) > Hello, World! > ==4240== > ==4240== HEAP SUMMARY: > ==4240== in use at exit: 331,256 bytes in 162 blocks > ==4240== total heap usage: 272 allocs, 110 frees, 1,034,898 bytes > allocated > ==4240== > ==4240== 104 bytes in 1 blocks are possibly lost in loss record 88 of 142 > ==4240== at 0x4C2B800: operator new[](unsigned long) (in > /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) > ==4240== by 0x465090: > v8::internal::Debugger::Debugger(v8::internal::Isolate*) (in > /home/david/opt/v8/hello_world) > ==4240== by 0x575514: > v8::internal::Isolate::Init(v8::internal::Deserializer*) (in > /home/david/opt/v8/hello_world) > ==4240== by 0x6B48D0: v8::internal::Snapshot::Initialize(char const*) > (in /home/david/opt/v8/hello_world) > ==4240== by 0x406CEE: > v8::EnsureInitializedForIsolate(v8::internal::Isolate*, char const*) (in > /home/david/opt/v8/hello_world) > ==4240== by 0x4182E3: v8::Context::New(v8::Isolate*, > v8::ExtensionConfiguration*, v8::Handle<v8::ObjectTemplate>, > v8::Handle<v8::Value>) (in /home/david/opt/v8/hello_world) > ==4240== by 0x40501A: main (in /home/david/opt/v8/hello_world) > ==4240== > ==4240== 104 bytes in 1 blocks are possibly lost in loss record 89 of 142 > ==4240== at 0x4C2B800: operator new[](unsigned long) (in > /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) > ==4240== by 0x465157: > v8::internal::Debugger::Debugger(v8::internal::Isolate*) (in > /home/david/opt/v8/hello_world) > ==4240== by 0x575514: > v8::internal::Isolate::Init(v8::internal::Deserializer*) (in > /home/david/opt/v8/hello_world) > ==4240== by 0x6B48D0: v8::internal::Snapshot::Initialize(char const*) > (in /home/david/opt/v8/hello_world) > ==4240== by 0x406CEE: > v8::EnsureInitializedForIsolate(v8::internal::Isolate*, char const*) (in > /home/david/opt/v8/hello_world) > ==4240== by 0x4182E3: v8::Context::New(v8::Isolate*, > v8::ExtensionConfiguration*, v8::Handle<v8::ObjectTemplate>, > v8::Handle<v8::Value>) (in /home/david/opt/v8/hello_world) > ==4240== by 0x40501A: main (in /home/david/opt/v8/hello_world) > ==4240== > ==4240== 288 bytes in 1 blocks are possibly lost in loss record 106 of 142 > ==4240== at 0x4C2CC70: calloc (in > /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) > ==4240== by 0x4012E54: _dl_allocate_tls (dl-tls.c:296) > ==4240== by 0x5047DA0: pthread_create@@GLIBC_2.2.5 (allocatestack.c:589) > ==4240== by 0x7768A4: v8::internal::Thread::Start() (in > /home/david/opt/v8/hello_world) > ==4240== by 0x5756C9: > v8::internal::Isolate::Init(v8::internal::Deserializer*) (in > /home/david/opt/v8/hello_world) > ==4240== by 0x6B48D0: v8::internal::Snapshot::Initialize(char const*) > (in /home/david/opt/v8/hello_world) > ==4240== by 0x406CEE: > v8::EnsureInitializedForIsolate(v8::internal::Isolate*, char const*) (in > /home/david/opt/v8/hello_world) > ==4240== by 0x4182E3: v8::Context::New(v8::Isolate*, > v8::ExtensionConfiguration*, v8::Handle<v8::ObjectTemplate>, > v8::Handle<v8::Value>) (in /home/david/opt/v8/hello_world) > ==4240== by 0x40501A: main (in /home/david/opt/v8/hello_world) > ==4240== > ==4240== 576 bytes in 2 blocks are possibly lost in loss record 121 of 142 > ==4240== at 0x4C2CC70: calloc (in > /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) > ==4240== by 0x4012E54: _dl_allocate_tls (dl-tls.c:296) > ==4240== by 0x5047DA0: pthread_create@@GLIBC_2.2.5 (allocatestack.c:589) > ==4240== by 0x7768A4: v8::internal::Thread::Start() (in > /home/david/opt/v8/hello_world) > ==4240== by 0x57526A: > v8::internal::Isolate::Init(v8::internal::Deserializer*) (in > /home/david/opt/v8/hello_world) > ==4240== by 0x6B48D0: v8::internal::Snapshot::Initialize(char const*) > (in /home/david/opt/v8/hello_world) > ==4240== by 0x406CEE: > v8::EnsureInitializedForIsolate(v8::internal::Isolate*, char const*) (in > /home/david/opt/v8/hello_world) > ==4240== by 0x4182E3: v8::Context::New(v8::Isolate*, > v8::ExtensionConfiguration*, v8::Handle<v8::ObjectTemplate>, > v8::Handle<v8::Value>) (in /home/david/opt/v8/hello_world) > ==4240== by 0x40501A: main (in /home/david/opt/v8/hello_world) > ==4240== > ==4240== LEAK SUMMARY: > ==4240== definitely lost: 0 bytes in 0 blocks > ==4240== indirectly lost: 0 bytes in 0 blocks > ==4240== possibly lost: 1,072 bytes in 5 blocks > ==4240== still reachable: 330,184 bytes in 157 blocks > ==4240== suppressed: 0 bytes in 0 blocks > ==4240== Reachable blocks (those to which a pointer was found) are not > shown. > ==4240== To see them, rerun with: --leak-check=full --show-leak-kinds=all > ==4240== > ==4240== For counts of detected and suppressed errors, rerun with: -v > ==4240== ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0) > > I researched and found this post<https://groups.google.com/forum/#!topic/v8-users/1vBWqoEMltY> which describes the issue (with win32) and how he mostly solved it with V8::Dispose(). However, whenever I run the hello_world program with Dispose() (as the last function called in the program) it causes a segmentation fault. It seems to be seg-faulting after the call to Dispose() returns (I assume some destructor is attempting to access memory cleaned up by Dispose()). What am I doing wrong? Thanks for any help. -- -- v8-users mailing list [email protected] http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
