Mikhail, Thanks for the tips. This is exactly the type of functionality that I'm looking for. As far as I can tell, the d8 shell uses the JSON protocol to debug a remote process. I played around with this approach, but ran into a few challenges. While I know which object is hanging around, it isn't actually referenced by any JavaScript scope, so I can't use normal debugger commands to find out the object_id. How does one get the id?
Second, I tried tracing the implementation of the references command, so that I could just get the information in-process via C++, but I didn't have any luck. Can someone point me in the right direction? Any help greatly appreciated. cheers, Charles On May 3, 2:46 pm, Mikhail Naganov <[email protected]> wrote: > Hi Charles, > > D8 has support for finding backreferences, you can learn how it's > implemented. Consider this sample D8 session: > > $ scons d8 > $ ./d8 --debugger > V8 version 3.3.3 (candidate) [console: dumb] > JavaScript debugger enabled > d8> var a = {} > d8> function B(x) { this.x = x } > d8> var b = new B(a) > d8> debugger > break in [anonymous](), (d8) line 1 column 1 > debugger > ^ > dbg> dir a > #8#, type: object, constructor #9#, __proto__ #4#, 0 properties. > > dbg> references #8# > found 2 objects > #37#, type: object, constructor #39#, __proto__ #3#, 45 properties. > #38#, type: object, constructor #70#, __proto__ #80#, 1 properties. > > dbg> dir #38# > #38#, type: object, constructor #70#, __proto__ #80#, 1 properties. > x: object #8# > > dbg> dir #70# > #70#, type: object, constructor #10#, __proto__ #11#, 5 properties. > arguments: null #5# > length: number #14# > name: string #179# > prototype: object #80# > caller: null #5# > > dbg> dir #179# > type: string, "B" > > > > > > > > On Mon, May 2, 2011 at 23:38, Charles Lowell <[email protected]> wrote: > > Hi, > > > Is there an easy facility for finding out how many strong references a > > particular object has, and from which objects they originate? I've got > > a memory leak caused by a WeakReferenceCallback that never gets > > invoked. I presume this is because something, somewhere is holding a > > reference to it, but I'm having difficulty pinning down who or what > > that somebody is. > > > I've exhausted the possibilities reasoning about it, and so I'm > > looking for some way to just get empirical data. Thoughts? > > > cheers, > > Charles > > > -- > > 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
