Difference between revisions of "Gecko:Debugging Tools"

From MozillaWiki
Jump to: navigation, search
(Reflow Logs)
(Printing nsIAtoms)
Line 15: Line 15:
  
 
== Printing nsIAtoms ==
 
== Printing nsIAtoms ==
 +
 +
<bz> To print an nsIAtom, you see what concrete type it is using "set print object on", then cast it to that type, etc
 +
 +
<bz> if it's an nsStaticAtom:
  
 
   def satom
 
   def satom

Revision as of 03:41, 14 July 2007

Frame Tree Dump

<bz> for a frame dump, you can use the layout debugger, or... if you're in a debugger and want to examine the tree, you can do

def frametree
  set $r = ($arg0)->PresContext()->GetPresShell()->GetRootFrame()
  if ($r)
    call ((class nsIFrameDebug*)(class ViewportFrame*)$r)->List(stderr, 2)
  end
end


<bz> That should work when called on any nsIFrame to dump the tree it belongs to


Printing nsIAtoms

<bz> To print an nsIAtom, you see what concrete type it is using "set print object on", then cast it to that type, etc

<bz> if it's an nsStaticAtom:

 def satom
   p *((class nsStaticAtomWrapper*)$arg0)->mStaticAtom
 end

<bz> to be used as: satom content->Tag() or satom frame->GetType()

<bz> for nsGkAtoms it'll work great

Reflow Logs

See [Debugging Frame Reflow]