khtml still getting asserts on www.novinky.cz

Pavel Troller patrol at sinus.cz
Wed Dec 14 16:16:10 GMT 2005


> On Wednesday 14 December 2005 07:37, Pavel Troller wrote:
> >   Because I had to make this site working, I tried to patch the code to
> > return and do nothing instead of crashing on assert. Of course I don't want
> > such a patch being accepted, it was just my personal test.
> 
> What might be interesting for the khtml developers is to replace all 'if 
> (attached) return' statements with
> 
>   if ( attched )
>   {
>       kdWarning() << k_funcinfo << "Trying to reattach! Backtrace:" <<
>           endl << kdbacktrace() << endl;
>   }
> 
> That way you can at least report the code path being followed without having 
> to know khtml internals. The shell command c++filt can demangle the method 
> names for you.
> 
Hi!
  So, I've just finished this homework :-). I had to recompile khtml with
debugging and use gdb, because kdBacktrace didn't work even with debug symbols
enabled. I concentrated my efforts on the first assert, which is hit normally
(the other ones patched were probably just result of eliminating the first 
one). 
  The khtml/KJS portion of backtrace is the following:

Breakpoint 3, DOM::NodeImpl::attach (this=0x9885ec0) at dom_nodeimpl.cpp:803
803               kdWarning() << k_funcinfo << "Trying to reattach! Backtrace:" <<
(gdb) bt
#0  DOM::NodeImpl::attach (this=0x9885ec0) at dom_nodeimpl.cpp:803
#1  0x0221c852 in DOM::NodeBaseImpl::attach (this=0x9885ec0) at dom_nodeimpl.cpp:1349
#2  0x02222990 in DOM::ElementImpl::attach (this=0x9885ec0) at dom_elementimpl.cpp:515
#3  0x0221c831 in DOM::NodeBaseImpl::attach (this=0x98c5f10) at dom_nodeimpl.cpp:1346
#4  0x02222990 in DOM::ElementImpl::attach (this=0x98c5f10) at dom_elementimpl.cpp:515
#5  0x0221c831 in DOM::NodeBaseImpl::attach (this=0x98d4a98) at dom_nodeimpl.cpp:1346
#6  0x02222990 in DOM::ElementImpl::attach (this=0x98d4a98) at dom_elementimpl.cpp:515
#7  0x0221c4f4 in DOM::NodeBaseImpl::appendChild (this=0x96e2b60, newChild=0x98d4a98, exceptioncode=@0xbfd7e00c)
    at dom_nodeimpl.cpp:1254
#8  0x023e7955 in DOM::Node::appendChild (this=0xbfd7e140, newChild=@0xbfd7e0e0) at dom_node.cpp:294
#9  0x0233a19a in KJS::DOMNodeProtoFunc::tryCall (this=0x98ad968, exec=0xbfd7e910, thisObj=@0xbfd7e2d0, args=@0xbfd7e330)
    at kjs_dom.cpp:512
#10 0x02333785 in KJS::DOMFunction::call (this=0x98ad968, exec=0xbfd7e910, thisObj=@0xbfd7e2d0, args=@0xbfd7e330)
    at kjs_binding.cpp:114
#11 0x00e314ab in KJS::Object::call () from /opt/kde3.5/lib/libkjs.so.1

  The next info is, that this asserting condition was triggered 5 times during
the page loading (i.e. the breakpoint in the if (attached) {} block was hit
5 times). 

  Now I must leave my computer; I will try to make my next homeworks (bugzilla
entry and test case) ASAP.
                           With regards, Pavel Troller




More information about the kfm-devel mailing list