I recently wrote a script that dumps an IronPython 2.6.1 (.NET 2.0) object.

Probably won't work on anything else.





*From:* users-boun...@lists.ironpython.com [mailto:
users-boun...@lists.ironpython.com] *On Behalf Of *Lukas Cenovsky
*Sent:* Monday, October 18, 2010 8:27 PM
*To:* Discussion of IronPython
*Subject:* Re: [IronPython] gcroot for ironpython object



Thanks - that works. I've also found Kamil's blog post:
http://blog.kamil.dworakowski.name/2008/02/debugging-memory-problems-in-ironpython.html

Now I'm fighting with <Unloaded Type>s - trying to convert them to something
readable...
Kamil's script does not seem to work - I don't see any dict holding the
ironpython object in the stacktrace:

...
  0330d0f4(System.Windows.Controls.StackPanel)->
  0330d22c(System.Windows.Controls.UIElementCollection)->
  0330d240(System.Windows.Media.VisualCollection)->
  0330d520(System.Object[])->
  0330d428(System.Windows.Controls.Button)->
  0824cb0c(System.Windows.EffectiveValueEntry[])->
  0824cb00(System.Windows.EventHandlersStore)->
  0824cc00(MS.Utility.SingleObjectMap)->

0824cbe0(MS.Utility.FrugalObjectList`1[[System.Windows.RoutedEventHandlerInfo,
PresentationCore]])->

0824cbec(MS.Utility.SingleItemList`1[[System.Windows.RoutedEventHandlerInfo,
PresentationCore]])->
  0824caa8(System.Windows.RoutedEventHandler)->
  0824ca44(System.Object[])->
*  0824ca18(IronPython.Runtime.Method)->**
  08162f84(<Unloaded Type>)->*
  08163d78(IronPython.Runtime.PythonDictionary)->
  08163d6c(IronPython.Runtime.StringDictionaryStorage)->
  08163d84(System.Collections.Generic.Dictionary`2[[System.String,
mscorlib],[System.Object, mscorlib]])->
  081c5558(System.Collections.Generic.Dictionary`2+Entry[[System.String,
mscorlib],[System.Object, mscorlib]][])->
  0816b3bc(System.GopherStyleUriParser)

--
-- Lukáš


On 18.10.2010 20:04, Jonathan Allen wrote:

One trick is to give it a radioactive marker like they do in medical shows.



Have that instance you care about reference an instance of
EmailMessage or some other class you aren't actually using. Finding
the EmailMessage object should be easy because there is only one, and
from there you can find the IronPython object you are after.



I use RedGate instead of WinDbg, so I'm not sure this will work for
you. If you try it, please let me know the results.



Jonathan





-----Original Message-----

From: Lukas Cenovsky <cenov...@bakalari.cz> <cenov...@bakalari.cz>

Sent: Monday, October 18, 2010 10:01 AM

To: Discussion of IronPython <users@lists.ironpython.com>
<users@lists.ironpython.com>

Subject: [IronPython] gcroot for ironpython object



  Hi all,

I have an instance of IronPython object and I'd like to find out why it

is kept in memory (I use weakref to check it is still in the memory).



What is the best way to find the object in WinDbg so I can call gcroot

for it? Or is there a better way to find out why my object is kept in

memory?



Thanks.



--

-- Lukáš



_______________________________________________

Users mailing list

Users@lists.ironpython.com

http://lists.ironpython.com/listinfo.cgi/users-ironpython.com



_______________________________________________

Users mailing list

Users@lists.ironpython.com

http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Attachment: py_obj.wds
Description: Binary data

_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to