Hmm, that makes sense. Is there an internal object reference I can use that 
does stay stable?

And sorry if this wasn't clear from my message, but as I know nothing yet 
of v8 do you have any pointers to the source where assignment occurs?

On Thursday, October 4, 2018 at 2:28:42 PM UTC+2, Yang Guo wrote:
>
> Unfortunately this won't work 100% of the time. V8's GC may move objects, 
> so the address you would need to watch is not fixed.
>
> Yang
>
> On Thu, Oct 4, 2018 at 2:25 PM <eloy.d...@gmail.com <javascript:>> wrote:
>
>> Hi,
>>
>> I’m completely new to v8, so bare with me. Because the node debugging 
>> facility lacks the ability to define watchpoints (i.e. break when a 
>> variable changes), I was thinking that maybe I could do so at the VM level 
>> using lldb/gdb.
>>
>> The code I’m trying to debug tries to access a global variable, which 
>> somewhere during execution gets set to `null`. A pseudo example looks like:
>>
>> ```
>> var doc = document
>> debugger // <- here the object is a non-null value as expected
>> // Enzyme (a React testing utility) renders an async React tree and 
>> somewhere during that period `document` gets set to `null`
>> mount(<SomeComponentThatDoesAsyncRendering />) // <- an exception is 
>> raised because `document` is `null`
>> ```
>>
>> My thinking is:
>>
>> 1. I use node/v8’s JS debugger to hit a breakpoint where I know the 
>> variable is what I expect it to be
>> 2. break using lldb/gdb, find the JS variable
>> 3. set a native watchpoint or a conditional breakpoint on the VM code 
>> that assigns variables for the address of the JS variable
>> 4. when the native breakpoint hits, get a JS execution stack trace to 
>> find the location that is assigning the new (`null`) value
>>
>> Does this make any sense?
>>
>> Cheers,
>> Eloy
>>
>> -- 
>> -- 
>> v8-dev mailing list
>> v8-...@googlegroups.com <javascript:>
>> http://groups.google.com/group/v8-dev
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "v8-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to v8-dev+un...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
-- 
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to