feedback from my session on .net advanced debugging + TIP of the day on sos.dll

just got an IM from a person who attended my session on teched. on the session I showed how to use the sos debugger extension to analyze dump files, especially if you have problems on production environments.

he was able to track down a design problem of not having a dispose method along with it's Finalize, chris sells mentioned this not long ago on the DNR.

anyway it's great knowing people are actually using what you show, because it was a fairly low level stuff, windbg is not something easy to show, people like to see windows and graphics and not just dumps of memory.

I think I'm going to write some more about production time debugging in the next few days, especially on the problems you have when using the sos extension dll,

TIP of the day: did you know that you could use visual studio 2003 to load the clr v1.0 sos.dll ?

Comments

  • Anonymous
    July 25, 2003
    I'll divide my comment to three messages because I have a strange problem with my PC :)

    1. Well... I see you've decided to post it in your blog... :)
    Anyhow, as Yosi've said - I had a problem with one of my objects,
    which implemented multi-threaded communication scenario.
    The biggest mistake I've done was trusting the garbage collection
    blindly.
  • Anonymous
    July 25, 2003
  1. So it happens, that even though I've included destructors for all my
    objects (~Object), the __gc somehow decided to ignore it or initiate
    it on so-it-seems random events.
    That's why I've decided to implement the IComponent interface for all
    my objects. thats how I can be sure an object is really disposed (by
    running the deligate of Disposed).
  • Anonymous
    July 25, 2003
  1. About the binary memory dump - It surly was an unpleasent moment.
    I had to search the net (and your power points from the session) for
    the dump tools. Then, I've somehow noticed the thread which stays
    opened. That's when I've started to add houndreds of watched and to
    step into each and every function... I've found the problem, solved
    it (implemented the interface I've told you about) and.. now everything
    seems to work just fine :).