Every weak callback should either revive (via ClearWeak or MakeWeak) or
destroy (via Dispose) the handle for which it was called. This contract is
described in v8.h, see the comment above WeakReferenceCallback definition.

You have a callback that does not follow this contract.

--
Vyacheslav Egorov
On Dec 25, 2011 3:41 PM, "D C" <[email protected]> wrote:

> Hi all:
> I stuck here for about two weeks.
> Here is my stack trace.
> =========================================================================
>        Agent.exe!v8::internal::OS::DebugBreak()  Line 930      C++
>        Agent.exe!v8::internal::OS::Abort()  Line 925   C++
>        Agent.exe!V8_Fatal(const char * file=0x00d8fcd8, int line=237, const
> char * format=0x00d7bd18, ...)  Line 59 C++
>        Agent.exe!CheckHelper(const char * file=0x00d8fcd8, int line=237,
> const char * source=0x00d8fe34, bool condition=false)  Line 60 + 0x16
> bytes   C++
> >
> Agent.exe!v8::internal::GlobalHandles::Node::PostGarbageCollectionProcessing(v8::internal::Isolate
> * isolate=0x014b0068, v8::internal::GlobalHandles *
> global_handles=0x003ef478)  Line 237 + 0x27 bytes        C++
>        Agent.exe!
>
> v8::internal::GlobalHandles::PostGarbageCollectionProcessing(v8::internal::GarbageCollector
> collector=SCAVENGER)  Line 540 + 0x12 bytes     C++
>        Agent.exe!
> v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector
> collector=SCAVENGER, v8::internal::GCTracer * tracer=0x0012e0b4)  Line
> 822 + 0x15 bytes        C++
>        Agent.exe!
> v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace
> space=NEW_SPACE, v8::internal::GarbageCollector collector=SCAVENGER)
> Line 518 + 0x16 bytes   C++
>        Agent.exe!
> v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace
> space=NEW_SPACE)  Line 443      C++
>        Agent.exe!
> v8::internal::Factory::NewStringFromUtf8(v8::internal::Vector<char
> const > string={...}, v8::internal::PretenureFlag
> pretenure=NOT_TENURED)  Line 186 + 0xea bytes   C++
>        Agent.exe!v8::String::New(const char * data=0x00d68254, int
> length=8)  Line 4410    C++
>        Agent.exe!javascript_ctx_impl::call_obj_func(v8::Handle<v8::Object>
> object={...}, const char * method=0x00d68254, int argc=3,
> v8::Handle<v8::Value> * argv=0x0012e4b0)  Line 111 + 0x12 bytes C++
>        Agent.exe!read_handle<void>::operator()(const
> boost::system::error_code & ec={...}, unsigned int
> bytes_transferred=661)  Line 226        C++
> =========================================================================
> It seem like each time GC, String::New ASSERT, who can help me about
> that.
>
>
> --
> v8-users mailing list
> [email protected]
> http://groups.google.com/group/v8-users
>

-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users

Reply via email to