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.

Reply via email to