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