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
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to