Re: Win32OLE: Output parameters, Dispatch IDs
- From: "Dave Burt" <dave@xxxxxxxxxx>
- Date: Thu, 08 Dec 2005 06:40:53 GMT
x1 wrote:
> I have not been able to figure anything out yet myself.
I figured.
> Do you know off hand how one would be able to find any variable
> names(if exist) that are pointing to a given object?
Just last week, Joel VanderWerf wrote, in "Re: Memory Leaks: How to see GC
Roots?":
> There's a ruby patch to show what objects are reachable from the roots
> (and the chain of references in each case):
>
> http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-talk/151854?151368-152549
>
> It should easy to modify it to just show the roots.
In the same thread, Stephen Kellett posted a link to a product called Ruby
Memory Validator, which lists as a feature "References view. Display the
object reference graph for the application," and the screenshot looks like
it would deal well with this issue.
http://www.softwareverify.com/rubyMemoryValidator/feature.html
I have not actually operated either of these two possible solutions.
> For instance when looking at ObjectSpace.cantremembermethodname(Array)
> You get something like:
> ["notepad", nil, nil, 333]
>
> How would one be able to determine the object id and / or any variable
> names associated with it?
But, it just occurred to me, you could cheat and do something like this to
get the array:
pid = nil
ObjectSpace.each_object(Array) do |arr|
pid = arr[3] if arr.size == 4 && arr[0, 3] == ["notepad", nil, nil]
end
There you go - recover it from the object pool without knowing where the
references to it are/were.
Cheers,
Dave
.
- Follow-Ups:
- References:
- Win32OLE: Output parameters, Dispatch IDs
- From: Dave Burt
- Re: Win32OLE: Output parameters, Dispatch IDs
- From: x1
- Win32OLE: Output parameters, Dispatch IDs
- Prev by Date: Re: About class methods
- Next by Date: Re: injecting dynamic methods into a class
- Previous by thread: Re: Win32OLE: Output parameters, Dispatch IDs
- Next by thread: Re: Win32OLE: Output parameters, Dispatch IDs
- Index(es):
Relevant Pages
|